taon 21.0.99 → 21.0.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"taon-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/constants.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/context-db-migrations.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/dependency-injection/di-container.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/get-response-value.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/decorator-abstract-opt.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/controller-options.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/controller-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/symbols.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/validators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/class-helpers.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/taon-helpers.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/models.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-client.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-server.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-core.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/endpoint-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/endpoint-context-storage.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/breakpoints.service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/create-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/inject.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/entity-process.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/clone-obj.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-class.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-abstract-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-angular-service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/middleware-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-injector.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-middleware.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-file-upload.middleware.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/repository-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-custom-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/controller-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/http/http-methods-decorators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/http/http-params-decorators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-controller.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-crud-controller.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-kv-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-migration.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-provider.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/subscriber-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-subscriber-for-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/method-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/param-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/formly-group-wrapper.component.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/formly-repeat.component.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/type-from-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/fromly.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/orm/columns.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime.models.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/entity-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/migration-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/provider-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/taon-browser-prod.ts"],"sourcesContent":["export type TaonEntityKeysToOmit =\n | 'ctrl'\n | 'clone'\n | '__endpoint_context__'\n | 'ctx'\n | 'inject'\n | '_'\n | 'relation'\n | 'relations'\n | 'inject'\n | 'injectRepo'\n | 'injectCustomRepository'\n | 'injectCustomRepo'\n | 'injectController'\n | 'injectCtrl'\n | 'injectProvider'\n | 'injectMiddleware';\n\nexport const TaonEntityKeysToOmitArr: TaonEntityKeysToOmit[] = [\n 'ctrl',\n 'clone',\n '__endpoint_context__',\n 'ctx',\n 'inject',\n '_',\n 'relation',\n 'relations',\n 'inject',\n 'injectRepo',\n 'injectCustomRepository',\n 'injectCustomRepo',\n 'injectController',\n 'injectCtrl',\n 'injectProvider',\n 'injectMiddleware',\n];\n\nimport { InjectionToken } from '@angular/core';\n\nimport type { TaonContext } from './create-context';\n\nlet TAON_CONTEXT: InjectionToken<TaonContext>;\n//#region @browser\nTAON_CONTEXT = new InjectionToken<TaonContext>('TAON_CONTEXT');\n//#endregion\n\nlet CURRENT_HOST_BACKEND_PORT: InjectionToken<number>;\n//#region @browser\nCURRENT_HOST_BACKEND_PORT = new InjectionToken<number>(\n 'CURRENT_HOST_BACKEND_PORT',\n);\n//#endregion\n\nlet CURRENT_HOST_URL: InjectionToken<string>;\n//#region @browser\nCURRENT_HOST_URL = new InjectionToken<string>(\n 'CURRENT_HOST_URL',\n);\n//#endregion\n\nexport { TAON_CONTEXT, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL };\n\nexport const apiPrefix = 'api';","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsMigrations__NS__formatTimestamp, UtilsMigrations__NS__getFormattedTimestampFromClassName, UtilsMigrations__NS__getTimestampFromClassName, UtilsMigrations__NS__isValidTimestamp } from 'tnp-core/browser-prod';\nimport { TaonBaseMigration } from './base-classes/base-migration';\nimport type { EndpointContext } from './endpoint-context';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport {\n Column,\n DataSource,\n Entity,\n EntitySchema,\n Index,\n PrimaryGeneratedColumn,\n QueryRunner,\n Table,\n TableColumn,\n TableIndex,\n} from 'taon-typeorm/browser-prod';\n//#endregion\n\n//#region models\nexport type MigrationStatus = 'completed' | 'pending';\n\nexport class ContextDbMigrations {\n //#region fields\n\n //#region fields / migration table name\n readonly DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';\n //#endregion\n\n //#region fields / migration statuses\n readonly MIGRATION_STATUS_COMPLETED: MigrationStatus = 'completed';\n readonly MIGRATION_STATUS_PENDING: MigrationStatus = 'pending';\n //#endregion\n\n //#region fields / migration table schema\n readonly table = new Table({\n name: this.DEFAULT_MIGRATION_TABLE_NAME,\n columns: [\n {\n name: 'id',\n type: 'integer',\n isPrimary: true, // Mark it as the primary key\n isGenerated: true, // Enable auto-generation\n generationStrategy: 'increment', // Use auto-increment strategy\n },\n {\n name: 'name',\n type: 'varchar',\n length: '255',\n isUnique: true, // Ensure the name is unique\n isNullable: false, // Ensure this field is required\n },\n {\n // context is a part of name\n name: 'context',\n type: 'varchar',\n length: '255',\n isNullable: false, // Optional context for migrations (e.g., tenant or module name)\n },\n {\n name: 'applied_at',\n type: 'timestamp',\n default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp\n isNullable: true,\n },\n {\n name: 'status',\n type: 'varchar',\n length: '50',\n default: `'${this.MIGRATION_STATUS_COMPLETED}'`,\n isNullable: false,\n },\n // { // TODO not needed for now\n // name: 'checksum',\n // type: 'varchar',\n // length: '64',\n // isNullable: true, // Optional field to store a hash/checksum of migration file\n // },\n ],\n });\n //#endregion\n\n //#endregion\n\n //#region constructor\n constructor(private ctx: EndpointContext) {}\n //#endregion\n\n //#region methods & getters / make sure migration table exists\n async ensureMigrationTableExists(): Promise<void> {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / revert migration to timestamp\n private async logSelectALl(name: string, queryRunner: QueryRunner) {\n console.log(\n name,\n (\n await queryRunner.query(\n `SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`,\n [this.ctx.contextName],\n )\n ).map(m => m.name),\n );\n }\n\n async revertMigrationToTimestamp(timestamp: number) {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / clear migration table\n async clearMigrationTable() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / mark all migrations as applied\n async markAllMigrationsAsApplied() {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / run all migrations\n async runAllNotCompletedMigrations() {\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","export class DITaonContainer {\n private static instances = new Map();\n\n static resolve<T>(target: Function): T {\n if (DITaonContainer.instances.has(target)) {\n return DITaonContainer.instances.get(target);\n }\n\n // const tokens = Reflect.getMetadata('design:paramtypes', target) || [];\n const injections = []; // tokens.map(token => Container.inject<any>(token));\n\n const instance = new (target as any)(...injections);\n DITaonContainer.instances.set(target, instance);\n return instance;\n }\n\n static inject<T>(target: new (...args: any[]) => T): T {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n return typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n },\n set: (_, propName, value) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n instance[propName] = value;\n return true;\n },\n },\n ) as T;\n }\n}","import { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { ExpressRequest, ExpressResponse } from './express-types';\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './helpers/taon-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\n\nexport const getResponseValue = <T>(\n response: Models__NS__Http__NS__Response<T>,\n options?: { req: ExpressRequest<any>; res: ExpressResponse<any> },\n): Promise<T> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};","import { TaonBaseClass } from '../base-classes/base-class';\nexport class DecoratorAbstractOpt {\n declare className: string;\n}","import { DecoratorAbstractOpt } from '../decorators/decorator-abstract-opt';\nimport type { TaonMiddlewareFunction } from '../decorators/http/http-methods-decorators';\n\nexport class TaonControllerOptions<\n ControllerClass = any,\n> extends DecoratorAbstractOpt {\n /**\n * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n */\n declare realtime?: boolean;\n /**\n * override default path for controller api\n */\n declare path?: string;\n /**\n * Middlewares to be applied to all methods in the controller\n */\n declare middlewares?: TaonMiddlewareFunction;\n}","// import type { TaonBaseMiddleware } from '../base-classes/base-middleware';\nimport { TaonMiddlewareInheritanceObj } from '../decorators/http/http-methods-decorators';\n// import { cloneObj } from '../helpers/clone-obj';\n\nimport { TaonControllerOptions } from './controller-options';\nimport { MethodConfig } from './method-config';\n// import { ParamConfig } from './param-config';\n\nexport class ControllerConfig extends TaonControllerOptions {\n declare methods: { [methodName: string]: Partial<MethodConfig> };\n /**\n * Calculated path from parents controllers\n */\n declare calculatedPath?: string;\n /**\n * a way to transform entity before sending to browser\n */\n declare browserTransformFn?: (entity: any) => any;\n /**\n * Calculated middlewares object from parents controllers\n */\n declare calculatedMiddlewaresControllerObj?: TaonMiddlewareInheritanceObj;\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<ControllerConfig>): ControllerConfig {\n // return cloneObj<ControllerConfig>(override, ControllerConfig);\n // }\n}\n\nexport const controllerConfigFrom = (\n partial: Partial<ControllerConfig>,\n): ControllerConfig => {\n const newObj: ControllerConfig = partial || ({} as any);\n newObj.methods = newObj.methods || {};\n for (const methodName in newObj.methods) {\n if (newObj.methods.hasOwnProperty(methodName)) {\n // newObj.methods[methodName] = new MethodConfig().clone(\n // newObj.methods[methodName],\n // );\n\n newObj.methods[methodName] = newObj.methods[methodName] || {};\n\n const params =\n (newObj.methods[methodName] as MethodConfig).parameters || {};\n (newObj.methods[methodName] as MethodConfig).parameters = params\n ? params\n : {};\n\n for (const paramName in params) {\n if (params.hasOwnProperty(paramName)) {\n params[paramName] = params[paramName] || {};\n // params[paramName] = new ParamConfig().clone(params[paramName]);\n }\n }\n }\n }\n return newObj;\n};","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n/**\n * for backendSocket.in(ROOM_NAME).emit(EVENT)\n *\n * Room names are uniqe..\n * here I am limiting number of event for clients.\n */\nclass Realtime {\n NAMESPACE(contextName: string) {\n return `${contextName}-taonRealtimeNsp`;\n }\n\n TABLE_CHANGE(contextName: string, tableName: string) {\n return `${contextName}:listentablename${tableName}`;\n }\n\n readonly KEYroomSubscribe = `roomSubscribe`;\n\n readonly KEYroomUnsubscribe = `roomUnsubscribe`;\n\n // /**\n // * TODO use it or not?\n // * @deprecated\n // */\n // ROOM_NAME_SUBSCRIBER_EVENT(\n // contextName: string,\n // className: string,\n // propertyName: string,\n // ) {\n // return `${contextName}:room${___NS__camelCase(className)}${propertyName}`.toLowerCase();\n // }\n\n //#region custom events in rooms\n ROOM_NAME_CUSTOM(contextName: string, customEvent: string) {\n return `${contextName}:CustomRoomEvent${customEvent}`;\n }\n\n ROOM_SUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}CustomRoomEvent`;\n }\n\n ROOM_UNSUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}CustomRoomEvent`;\n }\n //#endregion\n\n //#region entity events\n ROOM_NAME_UPDATE_ENTITY(\n contextName: string,\n className: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${___NS__camelCase(className)}${entityId}`.toLowerCase();\n }\n\n ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityEvents`;\n }\n //#endregion\n\n //#region entity property events\n ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n contextName: string,\n className: string,\n property: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${___NS__camelCase(className)}${___NS__camelCase(property)}${entityId}`.toLowerCase();\n }\n\n ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityPropertyEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityPropertyEvents`;\n }\n //#endregion\n}\n\n//namespace Symbols\n\n export const Symbols__NS__ctxInClassOrClassObj = Symbol();\n\n export const Symbols__NS__fullClassNameStaticProperty: string = `$$fullclassName$$`;\n\n export const Symbols__NS__orignalClassClonesObj: string = `$$originalClassClonesObj$$`;\n export const Symbols__NS__classMethodsNames: string = `$$classMethodsNames$$`;\n\n export const Symbols__NS__REALTIME = new Realtime();\n\n export const Symbols__NS__metadata = {\n className: `class:realname`,\n options: {\n controller: `controller:options`,\n entity: `entity:options`,\n repository: `repository:options`,\n provider: `provider:options`,\n subscriber: `subscriber:options`,\n migration: `migration:options`,\n },\n };\n\n export const Symbols__NS__old = {\n HAS_TABLE_IN_DB: Symbol(),\n MDC_KEY: `modeldataconfig`,\n WEBSQL_REST_PROGRESS_FUN: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_START: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_DONE: Symbol(),\n WEBSQL_REST_PROGRESS_TIMEOUT: Symbol(),\n\n X_TOTAL_COUNT: `x-total-count`,\n CIRCURAL_OBJECTS_MAP_BODY: `circuralmapbody`,\n CIRCURAL_OBJECTS_MAP_QUERY_PARAM: `circuralmapbody`,\n MAPPING_CONFIG_HEADER: `mappingheader`,\n MAPPING_CONFIG_HEADER_BODY_PARAMS: `mhbodyparams`,\n MAPPING_CONFIG_HEADER_QUERY_PARAMS: `mhqueryparams`,\n ENDPOINT_META_CONFIG: `ng2_rest_endpoint_config`,\n CLASS_DECORATOR_CONTEXT: `$$ng2_rest_class_context`,\n SOCKET_MSG: `socketmessageng2rest`,\n ANGULAR: {\n INPUT_NAMES: Symbol(),\n },\n ERROR_MESSAGES: {\n CLASS_NAME_MATCH: `Please check if your \"class name\" matches @Controller( className ) or @Entity( className )`,\n },\n };\n\n//end of namespace Symbols","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { MethodConfig } from './config/method-config';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\n\n//namespace Validators\n\n //#region vlidate class name\n export const Validators__NS__classNameVlidation = (className, target: Function) => {\n setTimeout(() => {\n // console.log(`check after timeout ${className} , production mode: ${FrameworkContext.isProductionMode}`)\n if (___NS__isUndefined(className)) {\n throw `[Taon]\n Please provide \"className\" property for each Controller and Entity:\n\n @Taon.Controller({ className: 'MyExampleCtrl' })\n class MyExampleCtrl {\n ...\n }\n\n @Taon.Entity({ className: 'MyExampleEntity' })\n class MyExampleEntity {\n ...\n }\n\n Notice that minified javascript code does not preserve\n Functions/Classes names -this is only solution to preserve classes names.\n\n `;\n }\n });\n\n return ___NS__isUndefined(className) ? target.name : className;\n };\n //#endregion\n\n //#region validate method config\n export const Validators__NS__checkIfMethodsWithReponseTYpeAlowed = (\n methods: MethodConfig[],\n current: MethodConfig,\n ) => {\n const defaultResponseType = 'text or JSON';\n if (!current.responseType) {\n return;\n }\n for (let index = 0; index < methods.length; index++) {\n const m = methods[index];\n if (m.path === current.path && m.responseType !== current.responseType) {\n throw new Error(`\n [taon] you can have 2 methods with same path but differetn reponseType-s\n\n ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}\n ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}\n\n Please change path name on of the methods.\n\n `);\n }\n }\n };\n //#endregion\n\n //#region validate class functions\n // TODO\n export const Validators__NS__validateClassFunctions = (\n controllers: any[],\n entities: any[],\n proviers: any[],\n repositories: any[],\n ) => {\n if (\n ___NS__isArray(controllers) &&\n controllers.filter(f => !___NS__isFunction(f)).length > 0\n ) {\n console.error('controllers', controllers);\n throw `\n\n Incorect value for property \"controllers\" inside Taon.Init(...)\n\n `;\n }\n\n if (\n ___NS__isArray(entities) &&\n entities.filter(f => !___NS__isFunction(f)).length > 0\n ) {\n console.error('entites', entities);\n throw `\n\n Incorect value for property \"entities\" inside Taon.Init(...)\n\n `;\n }\n };\n //#endregion\n\n export const Validators__NS__preventUndefinedModel = (model, id) => {\n if (___NS__isUndefined(model)) {\n throw `Bad update by id, config, id: ${id}`;\n }\n };\n\n//end of namespace Validators","//#region imports\n/* */ \nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport {\n controllerConfigFrom,\n ControllerConfig,\n} from '../config/controller-config';\nimport { MethodConfig } from '../config/method-config';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions } from '../validators';\n\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './taon-helpers';\n//#endregion\n\n//namespace ClassHelpers\n\n //#region get class from name\n /**\n * TODO - repalce in every place when getting class fn from object\n */\n export const ClassHelpers__NS__getClassFnFromObject = (json: Object) => {\n if (___NS__isUndefined(json) || ___NS__isNull(json)) {\n return;\n }\n if (json.constructor) {\n return json.constructor;\n }\n const p = Object.getPrototypeOf(json);\n return p && p.constructor && p.constructor.name !== 'Object'\n ? p.constructor\n : void 0;\n };\n //#endregion\n\n //#region get name\n export const ClassHelpers__NS__getName = (classFnOrObject: any): string => {\n // exception for FormData\n if (classFnOrObject instanceof FormData) {\n return 'FormData';\n }\n if (!classFnOrObject) {\n console.error('OBJECT OR CLASS', classFnOrObject);\n throw new Error(`Cannot get name from this object or class.`);\n }\n return (\n (classFnOrObject[CoreModels__NS__ClassNameStaticProperty]\n ? classFnOrObject[CoreModels__NS__ClassNameStaticProperty]\n : classFnOrObject?.constructor[CoreModels__NS__ClassNameStaticProperty]) ||\n (___NS__isFunction(classFnOrObject) ? CLASS__NS__getName(classFnOrObject) : void 0)\n );\n };\n //#endregion\n\n export const ClassHelpers__NS__getOrginalClass = (classFnOrObject: any): any => {\n const org = classFnOrObject[CoreModels__NS__OrignalClassKey];\n if (!org) {\n return classFnOrObject;\n }\n return ClassHelpers__NS__getOrginalClass(org);\n };\n\n //#region get full internal name\n export const ClassHelpers__NS__getFullInternalName = (classFnOrObject: any): string => {\n // exception for FormData\n\n if (!classFnOrObject) {\n throw new Error(`Cannot get name from: ${classFnOrObject}`);\n }\n return (\n (classFnOrObject[Symbols__NS__fullClassNameStaticProperty]\n ? classFnOrObject[Symbols__NS__fullClassNameStaticProperty]\n : classFnOrObject?.constructor[Symbols__NS__fullClassNameStaticProperty]) ||\n void 0\n );\n };\n //#endregion\n\n //#region get unique key\n export const ClassHelpers__NS__getUniqueKey = (classFnOrObject: any): string | undefined => {\n const classFn = ___NS__isFunction(classFnOrObject)\n ? classFnOrObject\n : classFnOrObject?.constructor;\n\n const config = Reflect.getMetadata(\n Symbols__NS__metadata.options.entity,\n classFn,\n ) as TaonEntityOptions;\n\n if (!config) {\n return void 0;\n }\n\n return config.uniqueKeyProp;\n };\n //#endregion\n\n //#region is class object\n export const ClassHelpers__NS__isContextClassObject = (obj: any): boolean => {\n if (\n !___NS__isObject(obj) ||\n ___NS__isArray(obj) ||\n ___NS__isRegExp(obj) ||\n ___NS__isBuffer(obj) ||\n ___NS__isArrayBuffer(obj)\n ) {\n return false;\n }\n if (___NS__isDate(obj)) {\n return true;\n }\n const className = ClassHelpers__NS__getName(obj);\n return ___NS__isString(className) && className !== 'Object';\n };\n //#endregion\n\n //#region get name\n\n export const ClassHelpers__NS__setName = (target: Function, className: string): void => {\n // console.log('setName', className, target.name)\n Validators__NS__classNameVlidation(className, target);\n target[CoreModels__NS__ClassNameStaticProperty] = className;\n };\n //#endregion\n\n //#region has parent with class name\n export const ClassHelpers__NS__hasParentClassWithName = (\n target: Function,\n className: string,\n targets = [],\n ): boolean => {\n if (!target) {\n return false;\n }\n targets.push(target);\n let targetProto = Object.getPrototypeOf(target);\n\n if (\n ___NS__isFunction(targetProto) &&\n ClassHelpers__NS__getName(targetProto) === className\n ) {\n // console.log(`true \"${___NS__first(targets).name}\" for ${targets.map(d => d.name).join(',')}`)\n return true;\n }\n return ClassHelpers__NS__hasParentClassWithName(targetProto, className, targets);\n };\n //#endregion\n\n //#region get methods name\n\n //#region not allowed as method name\n const notAllowedAsMethodName = [\n 'length',\n 'name',\n 'arguments',\n 'caller',\n 'constructor',\n 'apply',\n 'bind',\n 'call',\n 'toString',\n '__defineGetter__',\n '__defineSetter__',\n 'hasOwnProperty',\n '__lookupGetter__',\n '__lookupSetter__',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'valueOf',\n '__proto__',\n 'toLocaleString',\n ];\n //#endregion\n\n /**\n * Express async handler for middleware functions.\n */\n export const ClassHelpers__NS__asyncHandler = fn => (req, res, next) => {\n Promise.resolve(fn(req, res, next)).catch(next);\n };\n\n export const ClassHelpers__NS__getMethodsNames = (\n classOrClassInstance: any,\n allMethodsNames = [],\n ): string[] => {\n if (!classOrClassInstance) {\n return Utils__NS__uniqArray(allMethodsNames);\n }\n\n const isClassFunction = ___NS__isFunction(classOrClassInstance);\n const classFun = isClassFunction\n ? classOrClassInstance\n : Object.getPrototypeOf(classOrClassInstance);\n const objectToCheck = isClassFunction\n ? (classOrClassInstance as Function)?.prototype\n : classOrClassInstance;\n const prototypeObj = Object.getPrototypeOf(objectToCheck || {});\n\n const properties = ___NS__uniq([\n ...Object.getOwnPropertyNames(objectToCheck || {}),\n ...Object.getOwnPropertyNames(prototypeObj || {}),\n ...Object.keys(objectToCheck || {}),\n ...Object.keys(prototypeObj || {}),\n ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));\n\n properties\n .filter(methodName => typeof objectToCheck[methodName] === 'function')\n .forEach(p => allMethodsNames.push(p));\n\n if (\n !classFun ||\n !classFun.constructor ||\n classFun?.constructor?.name === 'Object'\n ) {\n return Utils__NS__uniqArray(allMethodsNames);\n }\n return ClassHelpers__NS__getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);\n };\n //#endregion\n\n //#region get controller configs\n export const ClassHelpers__NS__getControllerConfigs = (\n target: Function,\n configs: ControllerConfig[] = [],\n callerTarget?: Function,\n ): ControllerConfig[] => {\n if (!___NS__isFunction(target)) {\n throw `[typescript-class-helper][getControllerConfigs] Cannot get class config from: ${target}`;\n }\n\n let config: ControllerConfig;\n const parentClass = Object.getPrototypeOf(target);\n const parentName = parentClass ? ClassHelpers__NS__getName(parentClass) : void 0;\n const isValidParent = ___NS__isFunction(parentClass) && parentName !== '';\n\n config = controllerConfigFrom(ClassHelpers__NS__getClassConfig(target));\n\n configs.push(config);\n\n return isValidParent\n ? ClassHelpers__NS__getControllerConfigs(parentClass, configs, target)\n : configs;\n };\n //#endregion\n\n //#region ensure configs\n\n // Ensure ClassConfig on constructor, clone parent if needed\n export const ClassHelpers__NS__ensureClassConfig = (\n target: Function,\n ): Partial<ControllerConfig> => {\n let cfg: Partial<ControllerConfig> = Reflect.getOwnMetadata(\n Symbols__NS__metadata.options.controller, // META_KEYS.class,\n target,\n );\n\n if (!cfg) {\n cfg = { methods: {} };\n\n const parent = Object.getPrototypeOf(target);\n if (parent && parent !== Function.prototype) {\n const parentCfg: Partial<ControllerConfig> = Reflect.getMetadata(\n Symbols__NS__metadata.options.controller, // META_KEYS.class,\n parent,\n );\n if (parentCfg) {\n // Deep copy each method config so child gets its own objects\n const clonedMethods: Record<\n string | symbol,\n Partial<MethodConfig>\n > = {};\n for (const [k, v] of Object.entries(parentCfg.methods)) {\n clonedMethods[k] = {\n ...v,\n parameters: { ...v.parameters }, // shallow clone parameters too\n };\n }\n\n cfg = {\n ...parentCfg,\n methods: clonedMethods,\n };\n }\n }\n\n Reflect.defineMetadata(Symbols__NS__metadata.options.controller, cfg, target);\n }\n\n return cfg;\n };\n\n // Ensure MethodConfig inside ClassConfig\n export const ClassHelpers__NS__ensureMethodConfig = (\n target: any,\n propertyKey: string | symbol,\n ): Partial<MethodConfig> => {\n const classCfg = ClassHelpers__NS__ensureClassConfig(target.constructor);\n let methodCfg: Partial<MethodConfig> =\n classCfg.methods[propertyKey?.toString()];\n if (!methodCfg) {\n methodCfg = { methodName: propertyKey?.toString(), parameters: {} };\n classCfg.methods[propertyKey?.toString()] = methodCfg as MethodConfig;\n }\n return methodCfg;\n };\n\n export const ClassHelpers__NS__getClassConfig = (\n constructor: Function,\n ): Partial<ControllerConfig> | undefined => {\n return Reflect.getMetadata(\n Symbols__NS__metadata.options.controller,\n constructor,\n );\n };\n //#endregion\n\n//end of namespace ClassHelpers","import * as JSON5 from 'json5';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport type { ControllerConfig } from '../config/controller-config';\nimport { MethodConfig } from '../config/method-config';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './class-helpers';\n\n//namespace TaonHelpers\n\n //#region fillUpTo string\n export const TaonHelpers__NS__fillUpTo = (s: string, nCharacters: number) => {\n return ___NS__times(nCharacters, n => {\n if (s.charAt(n)) {\n return s.charAt(n);\n }\n return ' ';\n }).join('');\n };\n //#endregion\n\n //#region is good path\n export const TaonHelpers__NS__isGoodPath = (p: string) => {\n return p && typeof p === 'string' && p.trim() !== '';\n };\n //#endregion\n\n export const TaonHelpers__NS__firstStringOrElemFromArray = (\n stringOrArrayOfString: string[] | string,\n ): string => {\n if (Array.isArray(stringOrArrayOfString)) {\n return ___NS__first(stringOrArrayOfString);\n }\n return stringOrArrayOfString;\n };\n\n //#region try transform params\n export const TaonHelpers__NS__tryTransformParam = param => {\n if (typeof param === 'string') {\n let n = Number(param);\n if (!isNaN(n)) return n;\n const bool = param.trim().toLowerCase();\n if (bool === 'true') {\n return true;\n }\n if (bool === 'false') {\n return false;\n }\n try {\n const t = JSON5.parse(param);\n return t;\n } catch (e) {\n return param;\n }\n }\n return param;\n };\n //#endregion\n\n //#region get expores path\n export const TaonHelpers__NS__getExpressPath = (\n c: ControllerConfig,\n pathOrClassConfig: Partial<MethodConfig>,\n ) => {\n if (typeof pathOrClassConfig === 'string')\n return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '');\n return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '');\n };\n //#endregion\n\n //#region get default value tyep\n export const TaonHelpers__NS__defaultType = value => {\n if (typeof value === 'string') return '';\n if (typeof value === 'boolean') return false;\n if (Array.isArray(value)) return {};\n if (typeof value === 'object') return {};\n };\n //#endregion\n\n //#region parse json with string jsons\n export const TaonHelpers__NS__parseJSONwithStringJSONs = (\n object: Object,\n waring = false,\n ): Object => {\n // console.log('checking object', object)\n if (!___NS__isObject(object)) {\n if (waring) {\n console.error(\n `\n parseJSONwithStringJSONs(...)\n Parameter should be a object, but is ${typeof object}\n `,\n object,\n );\n }\n\n return object;\n }\n\n let res = ___NS__cloneDeep(object);\n\n Object.keys(res).forEach(key => {\n let isJson = false;\n try {\n const possibleJSON = JSON.parse(res[key]);\n res[key] = possibleJSON;\n isJson = true;\n } catch (e) {\n isJson = false;\n }\n // console.log(`key ${key} is json `, isJson)\n if (isJson) {\n res[key] = TaonHelpers__NS__parseJSONwithStringJSONs(res[key], false);\n }\n });\n\n return res;\n };\n //#endregion\n\n //#region is plain file or folder\n export const TaonHelpers__NS__isPlainFileOrFolder = filePath => {\n return /^([a-zA-Z]|\\-|\\_|\\@|\\#|\\$|\\!|\\^|\\&|\\*|\\(|\\))+$/.test(filePath);\n };\n //#endregion\n\n //#region ips key name repsonse\n export const TaonHelpers__NS__ipcKeyNameResponse = (\n target: Function,\n methodConfig: Partial<MethodConfig>,\n expressPath: string,\n ) => {\n return [\n 'response',\n ClassHelpers__NS__getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n //#endregion\n\n //#region ipc key name request\n export const TaonHelpers__NS__ipcKeyNameRequest = (\n target: Function,\n methodConfig: Partial<MethodConfig>,\n expressPath: string,\n ) => {\n return [\n 'request',\n ClassHelpers__NS__getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n //#endregion\n\n //#region websql mocks\n export const TaonHelpers__NS__websqlMocks = headers => {\n const response: Express.Response = {\n status(status: any) {\n // console.log({status})\n return {\n send(send: any) {\n // console.log({status})\n },\n };\n },\n setHeader(key: string, value: any) {\n // console.log('Dummy set header', arguments)\n headers[key] = value;\n },\n };\n const request: Express.Request = {};\n return { request, response };\n };\n //#endregion\n\n//end of namespace TaonHelpers","import type { RequestHandler } from 'express';\nimport { HttpResponse, Ng2RestAxiosRequestConfig, ResourceResponse, RestErrorResponseWrapper, RestResponseWrapper, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseClass } from './base-classes/base-class';\nimport type { TaonBaseMiddleware } from './base-classes/base-middleware';\nimport type {\n TaonHttpDecoratorOptions,\n TaonMiddlewareFunction,\n TaonMiddlewareInheritanceObj,\n} from './decorators/http/http-methods-decorators';\nimport type { EndpointContext } from './endpoint-context';\nimport { ExpressRequest, ExpressResponse } from './express-types';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\n\n// ! TODO make it as a nice way to wrap normal request\nexport class TaonRestResponseWrapper extends RestResponseWrapper {}\n\nexport const BaseTaonClassesNames = [\n 'BaseCrudController',\n 'BaseController',\n 'BaseAbstractEntity',\n 'BaseEntity',\n 'BaseContext',\n 'BaseCustomRepository',\n 'BaseFileUploadMiddleware',\n 'BaseMiddleware',\n 'BaseClass',\n 'BaseInjector',\n 'BaseMigration',\n 'BaseProvider',\n 'BaseRepository',\n 'BaseSubscriberForEntity',\n 'BaseCliWorkerController',\n 'PortsController',\n 'PortsContext',\n] as const;\n\nexport const TaonTempDatabasesFolder = 'databases';\n\nexport const TaonTempRoutesFolder = 'routes';\n\n//namespace Models\n\n export const Models__NS__DatabasesFolder = TaonTempDatabasesFolder;\n export type Models__NS__FrameworkMode =\n | 'backend-frontend(tcp+udp)'\n | 'remote-backend(tcp+udp)'\n | 'backend-frontend(ipc-electron)'\n | 'backend-frontend(websql-electron)'\n | 'backend-frontend(websql)';\n\n //#region models / class types\n export enum Models__NS__ClassType {\n ENTITY = 'ENTITY',\n CONTROLLER = 'CONTROLLER',\n REPOSITORY = 'REPOSITORY',\n PROVIDER = 'PROVIDER',\n SUBSCRIBER = 'SUBSCRIBER',\n MIGRATION = 'MIGRATION',\n MIDDLEWARE = 'MIDDLEWARE',\n }\n\n export const Models__NS__ClassTypeKey = {\n [Models__NS__ClassType.ENTITY]: 'entities',\n [Models__NS__ClassType.CONTROLLER]: 'controllers',\n [Models__NS__ClassType.REPOSITORY]: 'repositories',\n [Models__NS__ClassType.PROVIDER]: 'providers',\n [Models__NS__ClassType.SUBSCRIBER]: 'subscribers',\n [Models__NS__ClassType.MIGRATION]: 'migrations',\n [Models__NS__ClassType.MIDDLEWARE]: 'middlewares',\n } as {\n [key in Models__NS__ClassType]: keyof Models__NS__ContextOptions<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >;\n };\n\n //#endregion\n\n //#region models / middleware type\n export type Models__NS__MiddlewareType = [Function, any[]];\n //#endregion\n\n //#region models / db recreate mode\n /**\n * DROP_DB+MIGRATIONS (default for development)\n * Drop all tables + recreate them + run migrations\n * synchronize: true , dropSchema: true\n * use migrations: true\n *\n * MIGRATIONS (default for production)\n * Do not drop tables, only run migrations\n * synchronize: false, dropSchema: false\n * use migrations: true\n */\n export type Models__NS__DBRecreateMode =\n | 'DROP_DB+MIGRATIONS'\n | 'PRESERVE_DATA+MIGRATIONS';\n //#endregion\n\n //#region models / database connection options\n export class Models__NS__DatabaseConfigTypeOrm {\n /**\n * database name\n */\n database?: string;\n\n /**\n * only for file base db: sqlite, sqljs\n */\n location?: string;\n\n synchronize: boolean;\n\n dropSchema: boolean;\n\n type?: CoreModels__NS__DatabaseType;\n\n /**\n * Persists db on disk/local-storage if serverless db\n */\n autoSave?: boolean;\n\n /**\n * for websql db mode\n * true by default\n */\n useLocalForage?: boolean;\n\n logging: boolean;\n\n databasePort?: number;\n\n databaseHost?: string;\n\n databaseUsername?: string;\n\n databasePassword?: string;\n }\n //#endregion\n\n //#region models / database config\n export class Models__NS__DatabaseConfig extends Models__NS__DatabaseConfigTypeOrm {\n /**\n * Default value 'DROP_ALL'.\n *\n * Tell framework what is happening with db\n * when context is starting.\n */\n public recreateMode?: Models__NS__DBRecreateMode;\n\n static from(\n databasePartialConfig: Partial<\n Omit<\n Models__NS__DatabaseConfig,\n 'synchronize' | 'dropSchema' | 'databaseConfigTypeORM'\n >\n >,\n ): Models__NS__DatabaseConfig {\n return ___NS__merge(new Models__NS__DatabaseConfig(), databasePartialConfig);\n }\n\n get databaseConfigTypeORM(): Models__NS__DatabaseConfigTypeOrm {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n }\n //#endregion\n\n //#region models / session\n // export type ISession = {\n // secret?: string;\n // saveUninitialized?: boolean;\n // /**\n // * max age of session\n // */\n // cookieMaxAge?: number;\n // secure?: boolean;\n // resave?: boolean;\n // };\n //#endregion\n\n //#region models / context options\n export type Models__NS__ConnectionOptionsLogs = {\n http?: boolean;\n realtime?: boolean;\n framework?: boolean;\n db?: boolean;\n migrations?: boolean;\n routes?: boolean;\n };\n export interface Models__NS__ContextOptions<\n CONTEXTS,\n CONTROLLERS,\n ENTITIES,\n REPOSITORIES,\n PROVIDERS,\n SUBSCRIBERS,\n MIGRATIONS,\n MIDDLEWARES,\n > {\n appId?: string;\n\n contextName: string;\n /**\n * if defined and different from contextName\n * - context will NOT be initialized\n */\n activeContext?: string | null;\n /**\n * IMPORTANT! provide full url that starts with http:// or https://\n * host/port for initing backend server\n */\n host?: string;\n\n /**\n * Needs to be specified in docker environment only\n */\n hostPortNumber?: number;\n /**\n * IMPORTANT! provide full url that starts with http:// or https://\n * frontend host only needed when we are\n * using withCredentials for axios\n * and session cookie\n * or realtime communication\n */\n frontendHost?: string;\n\n /**\n * Needs to be specified in docker environment only\n */\n frontendHostPortNumber?: number;\n\n /**\n * User ipc for communication between BE/FE\n * when electron is used as a platform\n * Default: true\n */\n useIpcWhenElectron?: boolean;\n /**\n * taon contexts here\n * (module like structure)\n */\n contexts?: CONTEXTS;\n /**\n * taon controller here\n * (glue between frontend and backend)\n */\n controllers?: CONTROLLERS;\n /**\n * taon entities\n * (entities are used to create tables in db)\n */\n entities?: ENTITIES;\n /**\n * taon repositories\n * (repositories are used to access data from db)\n */\n repositories?: REPOSITORIES;\n /**\n * taon providers\n * (context singletons)\n */\n providers?: PROVIDERS;\n /**\n * taon subscribers\n * (subscribers are used to listen to db events)\n */\n subscribers?: SUBSCRIBERS;\n /**\n * taon migrations\n * (migrations are used to update db schema and achieve proper CI/CD)\n */\n migrations?: MIGRATIONS;\n /**\n * taon middlewares\n * middlewares are used to intercept requests\n * and responses in the context\n */\n middlewares?: MIDDLEWARES;\n /**\n * Config for express session\n */\n session?: boolean;\n /**\n * taon is not going to write .rest files to cwd()\n */\n skipWritingServerRoutes?: boolean;\n /**\n * TODO - this is still in progress\n * @deprecated\n */\n productionMode?: boolean;\n /**\n * If you want your context to never be started as separated server\n * use abstract: true\n * @default: false\n */\n abstract?: boolean;\n logs?: boolean | Models__NS__ConnectionOptionsLogs;\n database?: boolean | Partial<Models__NS__DatabaseConfig>;\n /**\n * disable default realtime communication through TCP upgrade sockets\n */\n disabledRealtime?: boolean;\n /**\n * Will be removed soon - cloud will handle certs and https\n * @deprecated\n */\n https?: {\n key: string;\n cert: string;\n };\n /**\n * TODO - will be removed soon\n * @deprecated\n */\n publicAssets?: { serverPath: string; locationOnDisk: string }[];\n /**\n * by default cwd === process.cwd()\n */\n cwd?: string;\n }\n //#endregion\n\n //#region models / http\n //namespace Models__NS__Http\n\n export type Models__NS__Http__NS__ContextENDPOINT = { target: Function; initFN: Function };\n\n export type Models__NS__Http__NS__FormlyFromType = 'material' | 'bootstrap';\n\n export type Models__NS__Http__NS__ExpressContext<T> = (\n req: ExpressRequest<any>,\n res: ExpressResponse<any>,\n ) => T;\n\n export type Models__NS__Http__NS__SyncResponse<T> = string | T;\n\n export type Models__NS__Http__NS__ResponseFuncOpt<T> = {\n limitSize?: (\n enties: Function | Function[],\n include: string[],\n exclude: string[],\n ) => void;\n };\n\n export type Models__NS__Http__NS__SyncResponseFunc<T> = (\n options?: Models__NS__Http__NS__ResponseFuncOpt<T>,\n ) => Models__NS__Http__NS__SyncResponse<T>;\n export type Models__NS__Http__NS__MixResponse<T> = Models__NS__Http__NS__SyncResponse<T> | Models__NS__Http__NS__ExpressContext<T>;\n\n export type Models__NS__Http__NS__PromiseObservableMix<T> = Promise<T> & {\n observable: Observable<T>;\n };\n\n export interface Models__NS__Http__NS__ClientAction<T> {\n /**\n * @deprecated use request() mehods instead\n */\n readonly received?: Models__NS__Http__NS__PromiseObservableMix<HttpResponse<T>>;\n request?(\n axiosConfig?: Ng2RestAxiosRequestConfig,\n ): Models__NS__Http__NS__PromiseObservableMix<HttpResponse<T>>;\n }\n\n export interface Models__NS__Http__NS__AsyncResponse<T> {\n (\n req?: ExpressRequest<any>,\n res?: ExpressResponse<any>,\n ): Promise<Models__NS__Http__NS__SyncResponse<T> | Models__NS__Http__NS__SyncResponseFunc<T>>;\n }\n\n export type Models__NS__Http__NS__Response<T = string> = Models__NS__Http__NS__AsyncResponse<T> & Models__NS__Http__NS__ClientAction<T>;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n \n//end of namespace Models__NS__Http\n\n //#endregion\n\n //#region models / start params\n export interface Models__NS__StartParams {\n port: number;\n args: string[];\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }\n\n export interface Models__NS__TaonInitializeParams {\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }\n\n export interface Models__NS__TaonCtxCloneParams {\n useAsRemoteContext?: boolean;\n overrideRemoteHost?: string;\n overrideHost?: string;\n sourceContext?: EndpointContext;\n }\n\n //#endregion\n\n//end of namespace Models","//#region imports\n/* */\n/* */\n \nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { Subscriber } from 'rxjs';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from './realtime.models';\n//#endregion\n\nexport class RealtimeSubsManager {\n private isListening = false;\n private observers: Subscriber<any>[] = [];\n constructor(private options: RealtimeModels__NS__SubsManagerOpt) {}\n\n //#region methods & getters / start listen if not started\n startListenIfNotStarted(\n realtime: SocketClient<DefaultEventsMap, DefaultEventsMap>,\n ) {\n if (this.options.core.ctx.disabledRealtime) {\n console.warn(`[Taon][startListenIfNotStarted] sockets are disabled`);\n return;\n }\n\n if (!realtime) {\n console.warn(`[Taon][startListenIfNotStarted] invalid socket connection`);\n return;\n }\n\n if (!this.isListening) {\n // console.info(`[BROWSER]][IPC] subscribe to \"${this.options?.roomName}\" by sending event: \"${subscribeEvent}\"`, this.options);\n this.isListening = true;\n\n if (this.options.customEvent) {\n const subscribeEvent = Symbols__NS__REALTIME.ROOM_SUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client custom event notification\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n if (___NS__isString(this.options.property)) {\n const subscribeEvent =\n Symbols__NS__REALTIME.ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client entity property events updates\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n const subscribeEvent =\n Symbols__NS__REALTIME.ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client entity update events\n realtime.emit(subscribeEvent, this.options.roomName);\n }\n }\n\n // subPath -> SYMBOL - (customevnet|entityupdatebyid){..}{..}\n realtime.on(this.options.roomName, data => {\n this.update(data);\n });\n }\n }\n //#endregion\n\n //#region methods & getters / add observer\n add(observer: Subscriber<any>) {\n // log.info('Add observer')\n this.observers.push(observer);\n }\n //#endregion\n\n //#region methods & getters / remove observer\n remove(observer: Subscriber<any>) {\n // log.info('Remove observer')\n this.observers = this.observers.filter(obs => obs !== observer);\n if (this.observers.length === 0) {\n // log.info('Emit unsubscribe to server SERVER')\n this.isListening = false;\n const { core, customEvent, roomName, property } = this.options;\n\n const realtime = core.socketFE;\n\n if (customEvent) {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n if (___NS__isString(property)) {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n }\n }\n }\n }\n //#endregion\n\n //#region methods & getters / update\n private update(data: any) {\n // log.data(`realtime update!!!!! observers=${this.observers?.length} `)\n\n // console.log('updating', data);\n this.observers.forEach(observer => {\n // console.log(`observer closed: ${observer.closed}`,observer);\n if (!observer.closed) {\n observer.next(data);\n }\n });\n }\n //#endregion\n}","//#region imports\nimport { Observable } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseEntity } from '../base-classes/base-entity';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { RealtimeCore } from './realtime-core';\nimport { RealtimeSubsManager } from './realtime-subs-manager';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from './realtime.models';\n\n//#endregion\n\n/**\n * Client for realtime communication\n * you can listen to:\n * - entity changes (any property in table changed)\n * - entity custom property changes (specific property changed)\n * - entity table changes (new instance added, instance removed)\n * - custom events\n */\nexport class RealtimeClient {\n private subsManagers: { [path: string]: RealtimeSubsManager } = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n // this.core.ctx.logRealtime &&\n // Helpers__NS__info(`\n\n // [ctx=${this.core.ctx.contextName}] init RealtimeClient (type: ${this.core.ctx.contextType})\n\n // `);\n this.init();\n }\n }\n\n //#region methods & getters / init\n private init(): void {\n //#region prepare naspaces pathes\n const nspPath = {\n global: this.core.pathFor(),\n realtime: this.core.pathFor(\n Symbols__NS__REALTIME.NAMESPACE(this.core.ctx.contextName),\n ),\n };\n // console.log('[browser] nspPath', nspPath);\n\n if (this.core.ctx.isRemoteHost) {\n // NEED for remote host\n const nodeClientHostOrigin = this.core.ctx.host;\n\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] USING REMOTE FRONTEND HOST` +\n ` ${nodeClientHostOrigin} FOR REMOTE REALTIME`,\n );\n nspPath.global = new URL(\n `${nodeClientHostOrigin}${nspPath.global.pathname}`,\n );\n nspPath.realtime = new URL(\n `${nodeClientHostOrigin}${nspPath.realtime.pathname}`,\n );\n } else {\n if (\n this.core.ctx.config.frontendHost &&\n this.core.ctx.config.frontendHost !== '' &&\n this.core.ctx.isRunningInsideDocker\n ) {\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] USING FRONTEND HOST` +\n ` ${this.core.ctx.config.frontendHost} FOR REALTIME`,\n );\n nspPath.global = new URL(\n `${this.core.ctx.frontendHostUri.origin}${nspPath.global.pathname}`,\n );\n nspPath.realtime = new URL(\n `${this.core.ctx.frontendHostUri.origin}${nspPath.realtime.pathname}`,\n );\n } else {\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] Not using frontend host for realtime`,\n );\n }\n }\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE GLOBAL ',\n nspPath.global.href + ` host: ${this.core.ctx.host}`,\n );\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE REALTIME',\n nspPath.realtime.href + ` host: ${this.core.ctx.host}`,\n );\n //#endregion\n\n //#region prepare globa FE socket\n this.core.conectSocketFE = this.core.strategy.ioClient(\n nspPath.global.origin,\n {\n path: nspPath.global.pathname,\n },\n );\n\n if (this.core.conectSocketFE.on) {\n this.core.conectSocketFE.on('connect', () => {\n // console.info(\n // `[CLIENT] connected to GLOBAL namespace ${global.nsp} of host: ${context.host}`,\n // );\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to GLOBAL namespace ${nspPath.global.pathname}` +\n ` of host: ${this.core.ctx.host}`,\n );\n });\n }\n\n //#endregion\n\n //#region prepare realtime FE socket\n this.core.socketFE = this.core.strategy.ioClient(nspPath.realtime.origin, {\n path: nspPath.realtime.pathname,\n });\n\n if (this.core.socketFE.on) {\n this.core.socketFE.on('connect', () => {\n // console.info(\n // `[CLIENT] connected to REALTIME namespace ${realtime.nsp} host: ${context.host}`,\n // );\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to REALTIME namespace ${nspPath.realtime.pathname}` +\n ` host: ${this.core.ctx.host}`,\n );\n });\n }\n\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / listen changes entity\n /**\n * Usage:\n * myContext.realtimeClient.listenChangesEntity(myEntityInstance);\n *\n *\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * myContext.realtimeServer.triggerEntityChanges(myEntityInstance);\n * ...\n */\n listenChangesEntity<RESULT = any>(\n entityClassFnOrObj: Function | object,\n options?: RealtimeModels__NS__ChangeOption,\n ): Observable<RESULT> {\n options = ___NS__cloneDeep(options || ({} as any));\n\n if (___NS__isObject(entityClassFnOrObj)) {\n const orgObj = entityClassFnOrObj as TaonBaseEntity;\n entityClassFnOrObj =\n ClassHelpers__NS__getClassFnFromObject(entityClassFnOrObj);\n\n const uniqueKey = ClassHelpers__NS__getUniqueKey(entityClassFnOrObj);\n if (uniqueKey) {\n options.idOrUniqValue = orgObj[uniqueKey];\n }\n }\n\n //#region parameters validation\n const { property, customEvent } = options;\n const className = !customEvent && ClassHelpers__NS__getName(entityClassFnOrObj);\n\n if (___NS__isString(property)) {\n if (property.trim() === '') {\n throw new Error(\n `[Taon][listenChangesEntity.. incorrect property '' for ${className}`,\n );\n }\n }\n //#endregion\n\n return new Observable(observer => {\n //#region prepare parameters for manager\n\n if (this.core.ctx.disabledRealtime) {\n console.error(`[Taon][realtime rxjs] remove taon config flag:\n\n ...\n disabledRealtime: true\n ...\n\nto use socket realtime connection;\n `);\n return () => {\n // empty nothing to do\n };\n }\n\n let roomName: string;\n\n if (customEvent) {\n roomName = Symbols__NS__REALTIME.ROOM_NAME_CUSTOM(\n this.core.ctx.contextName,\n customEvent,\n );\n } else {\n roomName = ___NS__isString(property)\n ? Symbols__NS__REALTIME.ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n this.core.ctx.contextName,\n className,\n property,\n options.idOrUniqValue,\n )\n : Symbols__NS__REALTIME.ROOM_NAME_UPDATE_ENTITY(\n this.core.ctx.contextName,\n className,\n options.idOrUniqValue,\n );\n }\n\n const roomSubOptions: RealtimeModels__NS__SubsManagerOpt = {\n core: this.core,\n property,\n roomName,\n customEvent,\n };\n //#endregion\n\n const subManagerId =\n this.getUniqueIdentifierForConnection(roomSubOptions);\n if (!this.subsManagers[subManagerId]) {\n this.subsManagers[subManagerId] = new RealtimeSubsManager(\n roomSubOptions,\n );\n }\n const inst = this.subsManagers[subManagerId];\n inst.add(observer);\n\n inst.startListenIfNotStarted(this.core.socketFE);\n\n return () => {\n inst.remove(observer);\n };\n });\n }\n\n //#endregion\n\n //#region listen changes entity table\n /**\n * Listen changes entity table\n * Example: for pagination, lists update ...\n */\n listenChangesEntityTable<RESULT = any>(\n entityClassFn: Function,\n ): Observable<RESULT> {\n const className = ClassHelpers__NS__getName(entityClassFn);\n return this.listenChangesEntity<RESULT>(entityClassFn, {\n customEvent: Symbols__NS__REALTIME.TABLE_CHANGE(\n this.core.ctx.contextName,\n className,\n ),\n });\n }\n //#endregion\n\n //#region listen changes custom event\n listenChangesCustomEvent<RESULT = any>(\n customEvent: string,\n ): Observable<RESULT> {\n return this.listenChangesEntity<RESULT>(void 0, {\n customEvent,\n });\n }\n //#endregion\n\n //#region methods & getters / trigger custom event\\\n /**\n * Trigger custom event on backend\n * @param customEvent global event name\n * @param dataToPush\n */\n public triggerCustomEvent(customEvent: string, dataToPush?: any): void {\n this.core.socketFE.emit(customEvent, dataToPush);\n }\n //#endregion\n\n //#region methods & getters / get room id from\n private getUniqueIdentifierForConnection(\n options: RealtimeModels__NS__SubsManagerOpt,\n ): string {\n let url: URL = new URL(options.core.ctx.host);\n let contextNameForCommunication =\n options.core.ctx.contextNameForCommunication;\n return `${contextNameForCommunication}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n }\n //#endregion\n}","//#region imports\n/* */ \n\nimport { Observable, Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseEntity } from '../base-classes/base-entity';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { RealtimeCore } from './realtime-core';\n\n//#endregion\n\n/**\n * Server for realtime communication\n * you can trigger:\n * - entity changes (any property in table changed)\n * - entity custom property changes (specific property changed)\n * - entity table changes (new instance added, instance removed)\n * - custom events\n *\n * and also listen to:\n * - custom events from yourself\n */\nexport class RealtimeServer {\n // private jobs = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (core.ctx.disabledRealtime) {\n return;\n }\n/* */\n/* */\n \n }\n\n //#region methods & getters / init\n private init() {\n //#region @browser\n if (!this.core.ctx.config.frontendHost) {\n console.warn(`[Taon][Realtime]\n\n Frontend host is not defined\n REALTIME COMMUNICATION WILL NOT WORK\n\n provide \"frontendHost\" property in your taon config\n\n `);\n }\n //#endregion\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/* */\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 //#endregion\n\n //#region methods & getters / trigger changes\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private triggerChanges(\n entityObjOrClass: Function | object,\n property?: string,\n valueOfUniqueProperty?: number | string,\n customEvent?: string,\n customEventData?: any,\n ) {\n // console.log('customEventData', customEventData);\n // console.info('__triger entity changes');\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 //#endregion\n\n //#region entity changes\n\n //#region methods & getters / trigger entity changes\n public triggerEntityChanges(\n entityObjOrClass: Function | object,\n /**\n * value of unique key property of entity instance\n * (this value is not needed if entityObjOrClass is instance of entity)\n */\n idToTrigger?: number | string,\n ): void {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers__NS__getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n this.triggerChanges(entityObjOrClass as any, void 0, idToTrigger);\n }\n //#endregion\n\n //#region methods & getters / trigger entity property changes\n public triggerEntityPropertyChanges(\n entityObjOrClass: Function | object,\n /**\n * property name or array of property names that changed\n * for entity instance\n */\n property: string | string[],\n /**\n * value of unique key property of entity instance\n * (this value is not needed if entityObjOrClass is instance of entity)\n */\n idToTrigger?: number | string,\n ): void {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers__NS__getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityPropertyChanges][property=${\n property as string\n }] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n if (___NS__isArray(property)) {\n property.forEach(propertyFromArr => {\n this.triggerChanges(\n entityObjOrClass,\n propertyFromArr as any,\n idToTrigger,\n );\n });\n } else {\n this.triggerChanges(entityObjOrClass, property as any, idToTrigger);\n }\n }\n //#endregion\n\n //#region methods & getters / trigger entity table changes\n public triggerEntityTableChanges(\n entityClassOrInstance: Function | object,\n ): void {\n const className = ClassHelpers__NS__getName(entityClassOrInstance);\n\n if (this.core.ctx.disabledRealtime) {\n console.warn(\n `[Taon][TriggerEntityTableChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n this.triggerChanges(\n entityClassOrInstance as any,\n void 0,\n void 0,\n Symbols__NS__REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className),\n );\n }\n //#endregion\n\n //#endregion\n\n //#region custom changes\n\n //#region methods & getters / trigger custom event\n public triggerCustomEvent(customEvent: string, dataToPush: any): void {\n this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);\n }\n //#endregion\n\n //#region methods & getters / listen custom events from users\n /**\n * Listen to custom events from users\n * @param customEvent global event name\n */\n listenChangesCustomEvent(customEvent: string): Observable<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","import { EndpointContext } from '../../endpoint-context';\nimport type { Server, ServerOptions } from 'socket.io';\nimport type { io } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io';\n\nexport abstract class RealtimeStrategy {\n constructor(protected ctx: EndpointContext) {}\n\n get ioClient(): typeof io {\n throw new Error('Not implemented');\n }\n\n ioServer(\n url: string,\n opt: ServerOptions,\n ): Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> {\n throw new Error('Not implemented');\n }\n\n abstract toString(): string;\n}","//#region imports\nimport type { ipcRenderer } from 'electron'; // @browser\nimport type * as Electron from 'electron';\n/* */ \nimport { Server, ServerOptions } from 'socket.io';\nimport type { io, ManagerOptions, SocketOptions } from 'socket.io-client';\n\nimport { EndpointContext } from '../../endpoint-context';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from '../realtime.models';\n\nimport { RealtimeStrategy } from './realtime-strategy';\n//#endregion\n\n//#region mock server ipc\nexport class MockServerIpc {\n static serverByContextName = new Map<string, MockServerIpc>();\n\n static from(contextName: string): MockServerIpc {\n if (!MockServerIpc.serverByContextName.has(contextName)) {\n MockServerIpc.serverByContextName.set(\n contextName,\n new MockServerIpc(contextName),\n );\n }\n return MockServerIpc.serverByContextName.get(contextName);\n }\n\n namespacesByName = new Map<string, MockNamespaceIpc>();\n\n //#region constructor\n constructor(public contextName: string) {\n MockServerIpc.serverByContextName.set(contextName, this);\n }\n //#endregion\n\n //#region of\n of(namespace: string): MockNamespaceIpc {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(\n namespace,\n new MockNamespaceIpc(namespace, this),\n );\n }\n return this.namespacesByName.get(namespace);\n }\n //#endregion\n}\n//#endregion\n\n//#region mock namespace ipc\nexport class MockNamespaceIpc {\n //#region fields & getters\n electronClients = new Set<Electron.WebContents>();\n roomsByRoomName: {\n [roomName: string]: Set<Electron.WebContents>;\n } = {};\n\n private namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n } = {};\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * Namespace name\n */\n public name: string,\n public server: MockServerIpc,\n ) {}\n //#endregion\n\n //#region on\n on(eventName: string, callback: RealtimeModels__NS__EventHandler) {\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 return (void 0);\n }\n //#endregion\n\n //#region off\n off(event: string, callback?: RealtimeModels__NS__EventHandler) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region emit\n emit(eventName: string, ...args: any[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region to\n to(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, true);\n }\n //#endregion\n\n //#region in\n in(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, false);\n }\n //#endregion\n\n //#region join\n join(webContents: Electron.WebContents, roomName: string) {\n if (!this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName] = new Set();\n }\n this.roomsByRoomName[roomName].add(webContents);\n }\n //#endregion\n\n //#region leave\n leave(webContents: Electron.WebContents, roomName: string) {\n if (this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName].delete(webContents);\n if (this.roomsByRoomName[roomName].size === 0) {\n delete this.roomsByRoomName[roomName];\n }\n }\n }\n //#endregion\n\n //#region path\n path() {\n return this.name;\n }\n //#endregion\n\n //#region get nsp\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n //#endregion\n}\n\n//#endregion\n\n//#region room emitter ipc\nclass RoomEmitterIpc {\n //#region constructor\n constructor(\n private electronClients: Set<Electron.WebContents>,\n /**\n * namespace name\n */\n private name: string,\n private includeSender: boolean = false,\n private sender: MockSocketIpc = null, // TODO QUICK FIX how to include sender\n ) {}\n //#endregion\n\n //#region emit in room\n emit(eventName: string, ...args: any[]): void {\n const emitEvent = `(${this.name}) \"${eventName}\"`;\n this.electronClients?.forEach(webContents => {\n webContents.send(emitEvent, ...args);\n });\n }\n //#endregion\n}\n//#endregion\n\n//#region mock socket ipc\nexport class MockSocketIpc {\n //#region fields & getters\n\n //#region fields & getters / ipc renderer\n //#region @browser\n ipcRenderer!: typeof ipcRenderer;\n //#endregion\n //#endregion\n\n //#region fields & getters / event handlers by name\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n };\n //#endregion\n\n //#region fields & getters / name\n get name() {\n return this.namespaceName;\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n /**\n * @param namespaceName instead url for ipc\n */\n constructor(public namespaceName: string) {\n //#region @browser\n this.ipcRenderer = (window as any).require('electron').ipcRenderer;\n //#endregion\n }\n //#endregion\n\n //#region on\n on(eventName: string, callback: (event: any, ...args: any[]) => void) {\n //#region @browser\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] = new Set();\n }\n this.socketEventHandlers[eventName].add(callback);\n\n const listenToEvent = `(${this.name}) \"${eventName}\"`;\n this.ipcRenderer.on(listenToEvent, (rendereEvent, data) => {\n callback(data);\n });\n\n if (eventName === 'connect') {\n const connectionEventKey = `(${this.name}) \"connection\"`;\n this.ipcRenderer.send(connectionEventKey, this.name);\n }\n //#endregion\n }\n //#endregion\n\n //#region off\n off(event: string, callback?: (event: any, ...args: any[]) => void) {\n //#region @browser\n if (!this.socketEventHandlers[event]) {\n return;\n }\n\n if (callback) {\n this.socketEventHandlers[event].delete(callback);\n } else {\n delete this.socketEventHandlers[event];\n }\n const removeListener = `(${this.name}) \"${event}\"`;\n\n this.ipcRenderer.removeListener(removeListener, data => {\n callback(data);\n });\n //#endregion\n }\n //#endregion\n\n //#region emit\n emit(event: string, ...args: any[]) {\n //#region @browser\n const emitEvent = `(${this.name}) \"${event}\"`;\n this.ipcRenderer.send(emitEvent, ...args);\n //#endregion\n }\n //#endregion\n}\n//#endregion\n\n/**\n * Purpose:\n * - backend-browser communication between 2 processes in electron mode\n */\nexport class RealtimeStrategyIpc extends RealtimeStrategy {\n //#region to string\n toString(): string {\n return 'ipc';\n }\n //#endregion\n\n //#region constructor\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n //#endregion\n\n //#region server & io\n ioServer(__: string, opt: ServerOptions) {\n const namespace = opt?.path || '/';\n const server = MockServerIpc.from(this.ctx.contextName);\n return server.of(namespace) as any;\n }\n\n get ioClient() {\n const clientIo = (\n __: string,\n opt?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocketIpc => {\n const namespace = opt?.path || '/';\n return new MockSocketIpc(namespace);\n };\n return clientIo as any;\n }\n //#endregion\n}","//#region imports\nimport type { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { ManagerOptions, SocketOptions } from 'socket.io-client';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from '../realtime.models';\nimport { ServerOptions } from 'socket.io';\n//#endregion\n\n//#region mock server\nclass MockServer {\n static serverByUrl = new Map<string, MockServer>();\n static from(url: string): MockServer {\n if (!MockServer.serverByUrl.has(url)) {\n MockServer.serverByUrl.set(url, new MockServer(url));\n }\n return MockServer.serverByUrl.get(url);\n }\n\n get allServers() {\n return Array.from(MockServer.serverByUrl.values());\n }\n\n namespacesByName = new Map<string, MockNamespace>();\n\n //#region constructor\n constructor(public url: string) {\n MockServer.serverByUrl.set(url, this);\n }\n //#endregion\n\n //#region of\n of(namespace: string): MockNamespace {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(namespace, new MockNamespace(namespace, this));\n }\n return this.namespacesByName.get(namespace);\n }\n //#endregion\n\n //#region path\n path() {\n return this.url;\n }\n //#endregion\n}\n//#endregion\n\n//#region mock namespace\nclass MockNamespace {\n /**\n * All sockets connected to this namespace\n */\n public readonly allSocketsForNamespace = new Set<MockSocket>();\n /**\n * Rooms and their sockets\n */\n private socketByRoomName: {\n [roomName: string]: Set<MockSocket>;\n } = {};\n /**\n * Event handlers for this namespace\n */\n public namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n } = {};\n\n //#region constructor\n constructor(\n /**\n * unique namespace name\n */\n public name: string,\n public server: MockServer,\n ) {}\n //#endregion\n\n //#region on\n on(eventName: string, handler: RealtimeModels__NS__EventHandler): void {\n // console.log(`ON EVNET event \"${eventName}\"`);\n if (!this.namespaceEventHandlers[eventName]) {\n this.namespaceEventHandlers[eventName] =\n new Set<RealtimeModels__NS__EventHandler>();\n }\n\n if (!this.namespaceEventHandlers[eventName].has(handler)) {\n this.namespaceEventHandlers[eventName].add(handler);\n }\n\n // QUICK_FIX Emit connection event for backend\n // TODO make it in emit\n if (eventName === 'connection') {\n setTimeout(() => {\n this.emit('connection', this);\n });\n }\n }\n //#endregion\n\n //#region emit\n emit(event: string, ...args: any[]): void {\n this.allSocketsForNamespace?.forEach(socket => {\n socket.emit(event, ...args);\n });\n }\n //#endregion\n\n //#region connect\n connect(socket: MockSocket): void {\n this.allSocketsForNamespace.add(socket);\n socket.namespaceInstance = this;\n }\n //#endregion\n\n //#region to\n to(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, true);\n }\n //#endregion\n\n //#region to room\n in(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, false);\n }\n //#endregion\n\n //#region join room\n joinRoom(roomName: string, socket: MockSocket): void {\n if (!this.socketByRoomName[roomName]) {\n this.socketByRoomName[roomName] = new Set<MockSocket>();\n }\n this.socketByRoomName[roomName].add(socket);\n }\n //#endregion\n\n //#region leave room\n leaveRoom(roomName: string, socket: MockSocket): void {\n const roomSockets = this.socketByRoomName[roomName];\n if (roomSockets) {\n this.socketByRoomName[roomName].delete(socket);\n }\n }\n //#endregion\n\n //#region nsp + name\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n //#endregion\n\n path() {\n return this.name;\n }\n}\n//#endregion\n\n//#region room emitter\nclass RoomEmitter {\n //#region constructor\n constructor(\n private sockets: Set<MockSocket>,\n private includeSender: boolean = false,\n private sender: MockSocket = null, // TODO QUICK FIX how to include sender\n ) {}\n //#endregion\n\n //#region emit in room\n emit(event: string, ...args: any[]): void {\n // console.log(\n // `emit room emiter ${event} , this.sockets ${this.sockets.length}`,\n // );\n this.sockets?.forEach(socket => {\n // console.log(`emit event ${event} to socket ${socket.id}`);\n if (this.includeSender || socket !== this.sender) {\n socket.emit(event, ...args);\n }\n });\n }\n //#endregion\n}\n//#endregion\n\n//#region mock socket\nclass MockSocket {\n public namespaceInstance: MockNamespace;\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n };\n get id() {\n return this.nsp.name;\n }\n\n //#region constructor\n constructor(\n public url: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ) {\n // @ts-ignore\n const [baseUrl, namespace] = [url, opts.path || '/'];\n // console.log({ url, baseUrl, namespace });\n const namespaceName = namespace || '/';\n\n // Look up the server instance from the registry\n const server = MockServer.from(url);\n\n const ns = server.of(namespaceName);\n ns.connect(this);\n }\n //#endregion\n\n //#region nsp + name\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.namespaceInstance?.name;\n },\n };\n }\n //#endregion\n\n //#region path\n path() {\n return this.namespaceInstance?.name;\n }\n //#endregion\n\n //#region on\n on(eventName: string, handler: RealtimeModels__NS__EventHandler): void {\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] =\n new Set<RealtimeModels__NS__EventHandler>();\n }\n this.socketEventHandlers[eventName].add(handler);\n\n // QUICK_FIX client initing itself\n if (eventName === 'connect') {\n setTimeout(() => {\n this.emit('connect');\n // this.namespaceInstance.emit('connection', this); @UNCOMMNENT\n });\n }\n }\n //#endregion\n\n //#region emit\n emit(eventName: string, ...args: any[]): void {\n eventName = eventName || '';\n\n if (eventName.includes(`:${Symbols__NS__REALTIME.KEYroomSubscribe}`)) {\n const room = args[0];\n this.join(room);\n } else if (eventName.includes(`:${Symbols__NS__REALTIME.KEYroomUnsubscribe}`)) {\n const room = args[0];\n this.leave(room);\n } else {\n // console.log('try to emit event (to server)', event);\n if (this.namespaceInstance) {\n const namespaceEventHandlers =\n this.namespaceInstance.namespaceEventHandlers[eventName] || [];\n\n // emit to namespace events\n for (const namespaceEventHandler of namespaceEventHandlers) {\n if (namespaceEventHandler) {\n namespaceEventHandler(...args);\n }\n }\n\n const allSocketsForNamespaceExceptCurrent = Array.from(\n this.namespaceInstance.allSocketsForNamespace.values(),\n ).filter(socket => socket !== this);\n\n // emit to all sockets in namespace\n for (const socket of allSocketsForNamespaceExceptCurrent) {\n const socketEventHandlers = socket.socketEventHandlers[eventName];\n for (const socketEventHandler of socketEventHandlers) {\n if (socketEventHandler) {\n socketEventHandler(...args);\n }\n }\n }\n\n // Emit to current socket\n const socketEventHandlers = this.socketEventHandlers[eventName] || [];\n for (const clientHandler of socketEventHandlers) {\n if (clientHandler) {\n clientHandler(...args);\n }\n }\n }\n }\n }\n //#endregion\n\n //#region join room\n join(roomName: string): void {\n this.namespaceInstance.joinRoom(roomName, this);\n }\n //#endregion\n\n //#region leave room\n leave(roomName: string): void {\n this.namespaceInstance.leaveRoom(roomName, this);\n }\n //#endregion\n}\n//#endregion\n\n/**\n * Purpose:\n * - browser-browser communication mock (in websql mode)\n */\nexport class RealtimeStrategyMock extends RealtimeStrategy {\n //#region toString\n toString(): string {\n return 'mock';\n }\n //#endregion\n\n //#region constructor\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n //#endregion\n\n //#region server & io\n ioServer(url: string, opt: ServerOptions) {\n const server = MockServer.from(url || this.ctx.uriOrigin);\n return server.of(opt?.path || '/') as any;\n }\n\n get ioClient() {\n const clientIo = (\n uri: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocket => {\n return new MockSocket(uri || this.ctx.uriOrigin, opts as any);\n };\n return clientIo as any;\n }\n //#endregion\n}","import { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\n/* */\n/* */\n \nimport { io, ManagerOptions, Socket, SocketOptions } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication\n * - backend-backend communication\n */\nexport class RealtimeStrategySocketIO extends RealtimeStrategy {\n toString(): string {\n return 'socket-io';\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n ioServer(...args) {\n/* */\n/* */\n return (void 0);\n }\n\n get ioClient() {\n return io;\n }\n}","//#region imports\nimport { Server } from 'socket.io';\nimport { DefaultEventsMap } from 'socket.io';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport { apiPrefix } from '../constants';\nimport type { EndpointContext } from '../endpoint-context';\n\nimport { RealtimeClient } from './realtime-client';\nimport { RealtimeServer } from './realtime-server';\nimport type { RealtimeStrategy } from './realtime-strategy';\nimport {\n RealtimeStrategyIpc,\n RealtimeStrategyMock,\n RealtimeStrategySocketIO,\n} from './realtime-strategy';\n\n//#endregion\n\n/**\n * Realtime class\n * - mock (when browser-browser)\n * - sockets (from socket io when backend-browser)\n * - ipc (when electron is used or between processes)\n * - webworker (when webworker is used in browser or nodejs)\n */\nexport class RealtimeCore {\n //#region fields\n readonly allHttpMethods = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'OPTIONS',\n 'HEAD',\n ];\n public readonly client: RealtimeClient;\n public readonly server: RealtimeServer;\n public readonly strategy: RealtimeStrategy;\n\n /**\n * global FE socket - only for established connection\n */\n public conectSocketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * socket for namespaces and rooms\n */\n public socketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * global BE socket - only for established connection\n */\n public connectSocketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n /**\n * socket for namespaces and rooms\n */\n public socketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n //#endregion\n\n //#region constructor\n constructor(public ctx: EndpointContext) {\n this.ctx = ctx;\n this.strategy = this.resolveStrategy();\n\n this.ctx.logRealtime &&\n console.log(`\n\n [ctx=${this.ctx.contextName}]\n mode = ${this.ctx.mode}\n realtime strategy = ${this.strategy}\n context type = ${this.ctx.contextType}\n\n `);\n if (UtilsOs__NS__isWebSQL) {\n this.server = new RealtimeServer(this as any);\n // console.log('DONE INITING SERVER');\n this.client = new RealtimeClient(this as any);\n // console.log('DONE INITING CLIENT');\n } else {\n this.client = new RealtimeClient(this as any);\n this.server = new RealtimeServer(this as any);\n }\n }\n //#endregion\n\n //#region methods & getters / resovle staraegy\n private resolveStrategy(): RealtimeStrategy {\n // console.log(`[taon] resolveStrategy for this.ctx.mode ${this.ctx.mode}`);\n if (\n this.ctx.mode === 'backend-frontend(websql)' ||\n this.ctx.mode === 'backend-frontend(websql-electron)'\n ) {\n // debugger\n return new RealtimeStrategyMock(this.ctx);\n }\n if (this.ctx.mode === 'backend-frontend(ipc-electron)') {\n return new RealtimeStrategyIpc(this.ctx);\n }\n // if (this.ctx.mode === 'backend-frontend(tcp+udp)') {\n // return new RealtimeStrategySocketIO(this.ctx);\n // }\n // if (this.ctx.mode === 'remote-backend(tcp+udp)') {\n // return new RealtimeStrategySocketIO(this.ctx);\n // }\n return new RealtimeStrategySocketIO(this.ctx);\n }\n //#endregion\n\n //#region path for\n public pathFor(namespace?: string) {\n let nsp = namespace ? namespace : '';\n nsp = nsp === '/' ? '' : nsp;\n const contextNameForCommunication = this.ctx.contextNameForCommunication;\n\n let prefix = `${apiPrefix}/${contextNameForCommunication}/udp`;\n if (UtilsOs__NS__isElectron) {\n prefix = ``;\n }\n const href =\n `${this.ctx.uriOrigin}${this.ctx.uriPathnameOrNothingIfRoot}` +\n `/${prefix}${prefix && nsp ? '-' + nsp : nsp}`;\n // console.log(`HREF: ${href}, nsp: ${nsp}`)\n return new URL(href) as URL;\n }\n //#endregion\n}","//#region imports\nimport type { Server } from 'http';\n/* */ \n/* */ \n\nimport axios from 'axios';\n/* */ \nimport type { Application } from 'express';\n// multer in taon middleware will do better job than express-fileupload\n// import * as fileUpload from 'express-fileupload'; // @backend\nimport type * as expressType from 'express';\nimport { JSON10 } from 'json10/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { decodeMappingForHeaderJson, encodeMapping, HttpResponse, Ng2RestAxiosRequestConfig, ResponseTypeAxios, RestErrorResponseWrapper, RestHeaders, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/browser-prod';\nimport { from, Subject } from 'rxjs';\n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \nimport {\n DataSource,\n DataSourceOptions,\n getMetadataArgsStorage,\n} from 'taon-typeorm/browser-prod';\nimport { path, requireDefault } from 'tnp-core/browser-prod';\nimport { config } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n/* */ \nimport { Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\nimport { crossPlatformPath } from 'tnp-core/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseClass } from './base-classes/base-class';\nimport type { TaonBaseController } from './base-classes/base-controller';\nimport { TaonBaseInjector } from './base-classes/base-injector';\nimport type { TaonBaseMiddleware } from './base-classes/base-middleware';\nimport type { TaonBaseMigration } from './base-classes/base-migration';\nimport { TaonBaseSubscriberForEntity } from './base-classes/base-subscriber-for-entity';\nimport type { ControllerConfig } from './config/controller-config';\nimport { MethodConfig } from './config/method-config';\nimport { ParamConfig } from './config/param-config';\nimport { apiPrefix } from './constants';\nimport { ContextDbMigrations } from './context-db-migrations';\nimport { createContext } from './create-context';\nimport { TaonEntityOptions } from './decorators/classes/entity-decorator';\nimport { TaonSubscriberOptions } from './decorators/classes/subscriber-decorator';\nimport { DITaonContainer } from './dependency-injection/di-container';\nimport type { ContextsEndpointStorage } from './endpoint-context-storage';\nimport { EntityProcess } from './entity-process';\nimport { getResponseValue } from './get-response-value';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './helpers/taon-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { RealtimeCore } from './realtime/realtime-core';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\n//#endregion\n\nlet bodyParser: typeof import('body-parser');\nlet cookieParser: typeof import('cookie-parser');\nlet cors: typeof import('cors');\nlet express: typeof import('express');\nlet methodOverride: typeof import('method-override');\nlet expressSession: typeof import('express-session');\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\nexport class EndpointContext {\n //#region fields\n\n //#region fields / use mariadb mysql in docker\n /**\n * JUST FOR TESTING PURPOSES\n */\n public readonly USE_MARIADB_MYSQL_IN_DOCKER: boolean = false;\n //#endregion\n\n //#region fields / flags\n disabledRealtime: boolean = false;\n\n /**\n * check whether context is inited\n * (with init() function )\n */\n public inited: boolean = false;\n //#endregion\n\n //#region fields / db migrations\n readonly dbMigrations = new ContextDbMigrations(this);\n //#endregion\n\n //#region fields / local instance obj symbol\n private readonly localInstaceObjSymbol = Symbol('localInstaceObjSymbol');\n //#endregion\n\n //#region fields / all instances of classes from context\n /**\n * all instances of classes from context\n * key is class name\n */\n public readonly allClassesInstances = {};\n //#endregion\n\n //#region fields / class instances by name\n private readonly classInstancesByNameObj = {};\n //#endregion\n\n //#region fields / obj with classes instances arr\n private readonly objWithClassesInstancesArr = {};\n //#endregion\n\n //#region fields / active routes\n public readonly activeRoutes: {\n expressPath: string;\n method: CoreModels__NS__HttpMethod;\n }[] = [];\n //#endregion\n\n //#region fields / typeorm repositories\n/* */\n/* */\n \n //#endregion\n\n //#region fields / source context\n get sourceContext(): EndpointContext | undefined {\n return this.cloneOptions?.sourceContext;\n }\n //#endregion\n\n //#region fields / skip writing server routes\n public readonly skipWritingServerRoutes: boolean = false;\n //#endregion\n\n //#region fields / types from contexts\n private injectableTypesfromContexts = [\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.SUBSCRIBER,\n Models__NS__ClassType.MIGRATION,\n ];\n //#endregion\n\n //#region fields / all types from contexts\n private allTypesfromContexts = [\n ...this.injectableTypesfromContexts,\n Models__NS__ClassType.ENTITY,\n ];\n //#endregion\n\n //#region fields / express app\n public expressApp: Application = {} as any;\n //#endregion\n\n //#region fields / server tcp udp\n public serverTcpUdp: Server;\n //#endregion\n\n //#region fields / database config\n databaseConfig?: Models__NS__DatabaseConfigTypeOrm;\n //#endregion\n\n //#region fields / mode\n mode: Models__NS__FrameworkMode;\n //#endregion\n\n //#region fields / only migration start\n readonly onlyMigrationRun?: boolean = false;\n\n readonly onlyMigrationRevertToTimestamp?: number = undefined;\n\n get isRunOrRevertOnlyMigrationAppStart(): boolean {\n return !!(this.onlyMigrationRun || this.onlyMigrationRevertToTimestamp);\n }\n //#endregion\n\n // //#region fields / session\n // session?: boolean; //Models.ISession;\n // //#endregion\n\n //#region fields / connection\n public connection: DataSource;\n //#endregion\n\n //#region fields / entities triggers\n private entitiesTriggers = {};\n //#endregion\n\n //#region fields / realtime\n private _realtime: RealtimeCore;\n\n get realtime(): RealtimeCore {\n if (!this._realtime) {\n throw new Error(`Please initialize context before accessing\n .realtime.client or realtime.server properties.\n\n `);\n }\n return this._realtime;\n }\n\n set realtime(v) {\n this._realtime = v;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n get realtimeClient() {\n return this.realtime.client;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n get realtimeServer() {\n return this.realtime.server;\n }\n //#endregion\n\n //#region fields / config\n /**\n * available after init()\n */\n public config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n //#endregion\n\n //#region fields / logs\n get logHttp(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).http;\n }\n return this.config?.logs === true;\n }\n\n get logRealtime(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).realtime;\n }\n return this.config?.logs === true;\n }\n\n get logFramework(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).framework;\n }\n return this.config?.logs === true;\n }\n\n get logRoutes(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).routes;\n }\n return this.config?.logs === true;\n }\n\n get logDb(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).db;\n }\n return this.config?.logs === true;\n }\n\n get logMigrations(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).migrations;\n }\n return this.config?.logs === true;\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n /**\n * Inside docker there is not need for https secure server\n */\n public readonly isRunningInsideDocker: boolean = false;\n\n constructor(\n private originalConfig: Models__NS__ContextOptions<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >,\n private configFn: (\n env: any,\n ) => Models__NS__ContextOptions<any, any, any, any, any, any, any, any>,\n /**\n * (@default: false)\n * If TRUE context is NOT going to create db/express server/http endpoints\n * PURPOSE OF THIS PROPERTY\n * -> ONLY remote access from backend or frontend to specific backend\n */\n private readonly cloneOptions: Models__NS__TaonCtxCloneParams,\n ) {\n this.cloneOptions = this.cloneOptions || {};\n this.isRunningInsideDocker = UtilsOs__NS__isRunningInDocker();\n }\n //#endregion\n\n //#region methods & getters / init\n public async init(options?: {\n initFromRecrusiveContextResovle?: boolean;\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }) {\n const {\n initFromRecrusiveContextResovle,\n onlyMigrationRun,\n onlyMigrationRevertToTimestamp,\n } = options || {}; // TODO use it ?\n\n this.inited = true;\n // @ts-ignore\n this.onlyMigrationRun = onlyMigrationRun;\n // @ts-ignore\n this.onlyMigrationRevertToTimestamp = onlyMigrationRevertToTimestamp;\n this.config = this.configFn({});\n if (___NS__isObject(this.config.database)) {\n this.config.database = Models__NS__DatabaseConfig.from(\n this.config.database as Models__NS__DatabaseConfig,\n ).databaseConfigTypeORM;\n }\n\n this.config.host = this.host === null ? void 0 : this.host;\n\n if (\n this.cloneOptions.overrideHost &&\n !this.cloneOptions.useAsRemoteContext\n ) {\n this.config.host = this.cloneOptions.overrideHost;\n }\n\n if (\n this.cloneOptions.overrideRemoteHost &&\n this.cloneOptions.useAsRemoteContext\n ) {\n this.config.host = this.cloneOptions.overrideRemoteHost;\n }\n\n if (\n this.config.host &&\n !this.config.host.startsWith('http://') &&\n !this.config.host.startsWith('https://')\n ) {\n Helpers__NS__throwError(\n `[taon-config] Your${this.host ? ' remote' : ''} 'host' must start with http:// or https://`,\n );\n }\n\n if (___NS__isUndefined(this.config.useIpcWhenElectron)) {\n this.config.useIpcWhenElectron = true;\n }\n // console.log(`config for ${this.contextName}`, this.config);\n\n //#region resolve if skipping writing server routes\n //@ts-expect-error overriding readonly\n this.skipWritingServerRoutes = ___NS__isBoolean(\n this.config.skipWritingServerRoutes,\n )\n ? this.config.skipWritingServerRoutes\n : false;\n //#endregion\n\n //#region resolve mode\n if (this.config.host) {\n this.mode = 'backend-frontend(tcp+udp)';\n/* */\n/* */\n \n }\n\n if (this.isRemoteHost) {\n this.mode = 'remote-backend(tcp+udp)';\n }\n\n // console.log(`\n\n // useIpcWhenElectron: ${this.config.useIpcWhenElectron}\n // UtilsOs__NS__isElectron: ${UtilsOs__NS__isElectron}\n\n // `)\n if (this.config.useIpcWhenElectron && UtilsOs__NS__isElectron) {\n if (UtilsOs__NS__isWebSQL) {\n this.mode = 'backend-frontend(websql-electron)';\n } else {\n this.mode = 'backend-frontend(ipc-electron)';\n }\n }\n\n // mode === undefined for TaonBaseContext => ok behavior\n // console.log(`Mode for BE/FE communication: ${this.mode}`);\n // if(!this.mode) {\n // console.log(this.config)\n // }\n\n if (!this.mode && !this.config.abstract) {\n const errMsg =\n `You need to provide host property or ` +\n `useIpcWhenElectron or mark it as abstract`;\n Helpers__NS__error(\n `[taon][Context=${this.contextName}]: ${errMsg}`,\n false,\n true,\n );\n/* */\n/* */\n \n }\n //#endregion\n\n //#region resolve database config\n if (this.config.database === true) {\n this.logFramework &&\n console.log(`\n\n ASSIGNING AUTO GENERATED DATABASE CONFIG\n\n `);\n this.databaseConfig = this.getAutoGeneratedConfig();\n } else if (___NS__isObject(this.config.database)) {\n this.logFramework &&\n console.log(`\n\n OVERRIDE DATABASE CONFIG FROM CONFIGURATION\n\n `);\n this.databaseConfig = this.getAutoGeneratedConfig();\n walk.Object(\n this.config.database,\n (value, lodashPath) => {\n if (___NS__isNil(value) || ___NS__isFunction(value) || ___NS__isObject(value)) {\n // skipping\n } else {\n this.logFramework &&\n console.info(\n `Overriding database config: ${lodashPath}=${value}`,\n );\n ___NS__set(this.databaseConfig, lodashPath, value);\n }\n },\n {\n walkGetters: false,\n },\n );\n }\n //#endregion\n\n //#region resolve session\n if (this.config.session) {\n // this.session = ___NS__cloneDeep(this.config.session);\n // const oneHour = 1000 * 60 * 60 * 1; // 24;\n // if (!this.session.cookieMaxAge) {\n // this.session.cookieMaxAge = oneHour;\n // }\n // serever and browser cookie authentication\n axios.defaults.withCredentials = true;\n }\n //#endregion\n\n //#region prepare & gather all classes recursively\n this.config.contexts = this.config.contexts || {};\n this.config.entities = this.config.entities || {};\n this.config.controllers = this.config.controllers || {};\n this.config.repositories = this.config.repositories || {};\n this.config.providers = this.config.providers || {};\n this.config.subscribers = this.config.subscribers || {};\n this.config.migrations = this.config.migrations || {};\n\n this.config.entities = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.ENTITY,\n )),\n ...this.config.entities,\n };\n\n this.config.controllers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.CONTROLLER,\n )),\n ...this.config.controllers,\n };\n\n this.config.providers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.PROVIDER,\n )),\n ...this.config.providers,\n };\n\n this.config.middlewares = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.MIDDLEWARE,\n )),\n ...this.config.middlewares,\n };\n\n this.config.subscribers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.SUBSCRIBER,\n )),\n ...this.config.subscribers,\n };\n\n this.config.repositories = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.REPOSITORY,\n )),\n ...this.config.repositories,\n };\n\n this.config.migrations = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.MIGRATION,\n )),\n ...this.config.migrations,\n };\n\n // console.log(this.config);\n // debugger;\n //#endregion\n\n //#region prepare classes instances/functions clones\n this.config.controllers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.controllers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.CONTROLLER,\n });\n this.config.repositories = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.repositories,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.REPOSITORY,\n });\n this.config.providers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.providers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.PROVIDER,\n });\n this.config.middlewares = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.middlewares,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.MIDDLEWARE,\n });\n\n this.config.subscribers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.subscribers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.SUBSCRIBER,\n });\n\n this.config.migrations = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.migrations,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.MIGRATION,\n });\n //#endregion\n\n //#region prepare instances\n for (const classTypeName of this.injectableTypesfromContexts) {\n this.classInstancesByNameObj[classTypeName] = {};\n this.objWithClassesInstancesArr[classTypeName] = [];\n }\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n await this.createInstances(\n this.config[Models__NS__ClassTypeKey[classTypeName]],\n classTypeName,\n );\n }\n //#endregion\n\n if (!this.isRunOrRevertOnlyMigrationAppStart) {\n //#region prepares server\n if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {\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 await this.initCustomClientMiddlewares();\n }\n //#endregion\n\n //#region prepare realtime\n if (!this.config.abstract) {\n this.disabledRealtime = this.config.disabledRealtime;\n if (!this.host) {\n throw `\n\n host is required for context initialization..\n (Or maybe you forgot mark ${this.config.contextName} context as abstract?)\n\n `;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n this.logRealtime &&\n Helpers__NS__info(\n `[ctx=${this.contextName}] Init Realtime for ${this.mode}`,\n );\n\n this.realtime = new RealtimeCore(this);\n }\n //#endregion\n }\n\n //#region show context info\n // console.log({ ref })\n if (this.config.abstract) {\n this.logFramework &&\n Helpers__NS__info(\n `[taon] Create abstract context: ${this.config.contextName}`,\n );\n } else {\n if (this.isRemoteHost) {\n this.logFramework &&\n Helpers__NS__info(\n `[taon] Create context for remote host: ${this.config.host}`,\n );\n } else {\n this.logFramework &&\n Helpers__NS__info(`[taon] Create context for host: ${this.config.host}`);\n }\n }\n //#endregion\n\n // update first exposed config\n Object.keys(this.config).forEach(key => {\n this.originalConfig[key] = this.config[key];\n });\n }\n //#endregion\n\n //#region methods & getters / get auto generated config\n private getAutoGeneratedConfig(): Models__NS__DatabaseConfigTypeOrm {\n this.logFramework &&\n console.log(`\n\n\n IS RUNNING IN DOCKER: ${this.isRunningInsideDocker}\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n get sqlLiteDbLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get electronDbLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get kvDbJsonLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / start server\n async startServer(): Promise<void> {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / display express routes\n displayRoutes(app) {\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 //#endregion\n\n //#region methods & getters / mode allows database creation\n get modeAllowsDatabaseCreation() {\n return (\n this.mode === 'backend-frontend(tcp+udp)' ||\n this.mode === 'backend-frontend(websql)' ||\n this.mode === 'backend-frontend(ipc-electron)'\n );\n }\n //#endregion\n\n //#region methods & getters / clone class\n private cloneClassWithNewMetadata = <\n T extends { new (...args: any[]): any },\n >({\n TaonBaseClass,\n className,\n config,\n ctx,\n classType,\n }: {\n TaonBaseClass: T;\n className: string;\n config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models__NS__ClassType;\n }): T => {\n // Return a new class that extends the base class\n const cloneClass = () => {\n if (\n TaonBaseClass[Symbols__NS__fullClassNameStaticProperty] ===\n `${ctx.contextName}.${className}`\n ) {\n return TaonBaseClass;\n }\n return class extends TaonBaseClass {\n // static ['_'] = TaonBaseClass['_'];\n\n static [CoreModels__NS__OrignalClassKey] = TaonBaseClass;\n\n static [Symbols__NS__fullClassNameStaticProperty] = `${ctx.contextName}.${className}`;\n\n static [CoreModels__NS__ClassNameStaticProperty] = className;\n\n static [Symbols__NS__ctxInClassOrClassObj] = ctx;\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n static __getFullPathForClass__(arr = []) {\n const name = this[Symbols__NS__fullClassNameStaticProperty];\n arr.push(name);\n\n if (\n this[CoreModels__NS__OrignalClassKey] &&\n (\n this[CoreModels__NS__OrignalClassKey] as any as {\n __getFullPathForClass__: any;\n }\n ).__getFullPathForClass__\n ) {\n (\n this[CoreModels__NS__OrignalClassKey] as any as {\n __getFullPathForClass__: any;\n }\n ).__getFullPathForClass__(arr);\n }\n return arr.join('/');\n }\n\n static get fullPathForClass(): string {\n return this.__getFullPathForClass__();\n }\n\n [Symbols__NS__ctxInClassOrClassObj] = ctx;\n // You can override prototype properties or methods here if needed\n // static properties override allowed\n };\n };\n\n const cloneClassFunction = cloneClass();\n\n //#region gather all instances for all contexts\n // TODO this is not needed anymore - for typeorm I use normal entities\n // this thinng belowe is nice for debugging purpose\n // if (___NS__isUndefined(cloneClassFunction[Symbols__NS__orignalClassClonesObj])) {\n // cloneClassFunction[Symbols__NS__orignalClassClonesObj] = {};\n // }\n // if (___NS__isUndefined(TaonBaseClass[Symbols__NS__orignalClassClonesObj])) {\n // TaonBaseClass[Symbols__NS__orignalClassClonesObj] = {};\n // }\n // const all = {\n // ...TaonBaseClass[Symbols__NS__orignalClassClonesObj],\n // ...cloneClassFunction[Symbols__NS__orignalClassClonesObj],\n // };\n // all[ctx.contextName] = cloneClassFunction;\n // cloneClassFunction[Symbols__NS__orignalClassClonesObj] = all;\n // TaonBaseClass[Symbols__NS__orignalClassClonesObj] = all;\n //#endregion\n\n return cloneClassFunction;\n };\n\n //#endregion\n\n //#region methods & getters / clone classes obj with new metadata\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private cloneClassesObjWithNewMetadata = ({\n classesInput,\n config,\n ctx,\n classType,\n }: {\n classesInput: any;\n config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models__NS__ClassType;\n }) => {\n const classes = {};\n // console.log(Object.keys(classesInput))\n for (const key of Object.keys(classesInput || {})) {\n const TaonBaseClass = classesInput[key];\n\n if (!TaonBaseClass) {\n Helpers__NS__error(`Class ${key} is not defined in context ${ctx.contextName}\n\n Please check if you have correct import in context file\n\n `);\n }\n\n var className = Reflect.getMetadata(\n Symbols__NS__metadata.className,\n TaonBaseClass,\n );\n\n // console.log('Metadata className', className, TaonBaseClass);\n // if (!className) {\n // console.warn(`Please provide className for ${TaonBaseClass.name} class`);\n // }\n className = className || key;\n TaonBaseClass[CoreModels__NS__ClassNameStaticProperty] = className;\n\n const clonedClass = this.cloneClassWithNewMetadata({\n TaonBaseClass,\n className,\n config,\n ctx,\n classType,\n });\n classes[className] = clonedClass;\n }\n return classes;\n };\n //#endregion\n\n //#region methods & getters / get recursive classes from contexts\n private async getRecrusiveClassesfromContextsObj(\n classType: Models__NS__ClassType,\n ) {\n const arr = await this.getRecrusiveClassesfromContexts(classType);\n return arr.reduce((acc, c) => {\n acc[ClassHelpers__NS__getName(c)] = c;\n return acc;\n }, {});\n }\n\n private async getRecrusiveClassesfromContexts(\n classType: Models__NS__ClassType,\n arr = [],\n ) {\n const contexts = Object.values(this.config.contexts || {}) as ReturnType<\n typeof createContext\n >[];\n // console.log({\n // contexts,\n // });\n for (const ctx of contexts) {\n // console.log(`STARTING ${ctx.contextName}`);\n const ref = await ctx.__ref();\n // console.log(`CTX FROM ${ctx.contextName}`, ref.contextName);\n const classesInput = ref.getClassFunBy(classType);\n // console.log(`${ref.contextName} - ${classType}`, { classesInput });\n\n const clonedClasses = Object.values(\n this.cloneClassesObjWithNewMetadata({\n classesInput,\n config: this.config,\n ctx: this,\n classType,\n }),\n );\n // console.log(`${classType} clonedClasses`, clonedClasses);\n clonedClasses.forEach(c => arr.push(c));\n\n await ref.getRecrusiveClassesfromContexts(classType, arr);\n }\n return arr as Function[];\n }\n //#endregion\n\n //#region methods & getters / get class instances by class type\n getClassInstanceObjBy(classType: Models__NS__ClassType): any {\n return this.classInstancesByNameObj[classType];\n }\n //#endregion\n\n //#region methods & getters / get class instances arr\n private getClassesInstancesArrBy(classType: Models__NS__ClassType): any[] {\n return this.objWithClassesInstancesArr[classType];\n }\n //#endregion\n\n //#region methods & getters / inject\n inject<T>(\n ctor: new (...args: any[]) => T,\n options: {\n localInstance?: boolean;\n contextClassInstance?: TaonBaseInjector;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n parentInstanceThatWillGetInjectedStuff: object;\n },\n ): T {\n const className = ClassHelpers__NS__getName(ctor);\n\n const locaInstanceConstructorArgs =\n options.locaInstanceConstructorArgs || [];\n\n if (this.isCLassType(Models__NS__ClassType.REPOSITORY, ctor)) {\n options.localInstance = true;\n }\n\n if (options?.localInstance) {\n const ctxClassFn = this.getClassFunByClassName(className);\n let entityName: string = '';\n\n // entity thing is only for repositories local repositories\n // if (className === 'TaonBaseRepository') {\n const entityFn = ___NS__first(locaInstanceConstructorArgs);\n const entity = entityFn && entityFn();\n entityName = (entity && ClassHelpers__NS__getName(entity)) || '';\n // console.log(`entityName `, entityName);\n // }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n if (!options.contextClassInstance[this.localInstaceObjSymbol]) {\n options.contextClassInstance[this.localInstaceObjSymbol] = {};\n }\n const instanceKey = className + (entityName ? `.${entityName}` : '');\n\n const existed =\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey];\n\n if (existed) {\n // console.log(\n // `EXISTED ${ClassHelpers__NS__getName(options.parentInstanceThatWillGetInjectedStuff)} Inject ${className} instanceKey \"${instanceKey}\"`,\n // );\n return existed;\n }\n\n // console.log(\n // `NEW ${ClassHelpers__NS__getName(options.parentInstanceThatWillGetInjectedStuff)} Inject ${className} instanceKey \"${instanceKey}\"`,\n // );\n\n if (!ctxClassFn) {\n throw new Error(`Not able to inject \"${className}\" inside context \"${this.contextName}\"\n\n Make sure they share the same context or import context where \"${className}\" is defined.\n\n `);\n }\n\n const injectedInstance = new (ctxClassFn as any)(\n ...locaInstanceConstructorArgs,\n );\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey] =\n injectedInstance;\n // console.log(`injectedInstance `, existed)\n return injectedInstance;\n }\n\n const contextScopeInstance = this.allClassesInstances[className];\n // if (className === 'TopicController') {\n // debugger;\n // }\n return contextScopeInstance;\n }\n\n /**\n * alias for inject\n */\n getInstanceBy<T>(ctor: new (...args: any[]) => T): T {\n // if (!!this.__contextForControllerInstanceAccess) {\n // const className = ClassHelpers__NS__getName(ctor);\n // const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n\n // // TODO QUICK_FIX cache controllers\n // for (const ctrl of allControllers) {\n // if (ClassHelpers__NS__getName(ctrl) === className) {\n // // console.log('injecting from contextForControllerInstanceAcesss', className);\n // return this.__contextForControllerInstanceAccess.inject(ctor, {\n // localInstance: false,\n // });\n // }\n // }\n // }\n\n return this.inject(ctor, {\n localInstance: false,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n }\n //#endregion\n\n //#region methods & getters / check if context initialized\n checkIfContextInitialized() {\n if (___NS__isUndefined(this.config)) {\n throw new Error(`Please check if your context has been initialized.\n\n // ...\n await Context.initialize();\n // ...\n\n\n `);\n }\n }\n //#endregion\n\n //#region methods & getters / get class function by class type name\n getClassFunBy(classType: Models__NS__ClassType) {\n this.checkIfContextInitialized();\n switch (classType) {\n case Models__NS__ClassType.CONTROLLER:\n return this.config.controllers;\n case Models__NS__ClassType.ENTITY:\n return this.config.entities;\n case Models__NS__ClassType.PROVIDER:\n return this.config.providers;\n case Models__NS__ClassType.MIDDLEWARE:\n return this.config.middlewares;\n case Models__NS__ClassType.REPOSITORY:\n return this.config.repositories;\n case Models__NS__ClassType.SUBSCRIBER:\n return this.config.subscribers;\n case Models__NS__ClassType.MIGRATION:\n return this.config.migrations;\n }\n }\n\n isCLassType(classType: Models__NS__ClassType, classFn: Function): boolean {\n return !!this.getClassFunBy(classType)[ClassHelpers__NS__getName(classFn)];\n }\n\n /**\n * Only for injectable types\n * Only for classType: CONTROLLER, REPOSITORY, PROVIDER, MIDDLEWARES\n */\n getClassFunByClassName(className: string): Function {\n for (const classTypeName of this.allTypesfromContexts) {\n const classesForInjectableType =\n this.config[Models__NS__ClassTypeKey[classTypeName]];\n\n if (classesForInjectableType[className]) {\n return classesForInjectableType[className];\n }\n }\n }\n\n getClassFunByClass(classFunction: Function): Function {\n const className = ClassHelpers__NS__getName(classFunction);\n return this.getClassFunByClassName(className);\n }\n\n getClassFunByArr(classType: Models__NS__ClassType) {\n return Object.values(this.getClassFunBy(classType) || {}) as Function[];\n }\n //#endregion\n\n //#region methods & getters / create class instances\n private async createInstances(classes: any, classType: Models__NS__ClassType) {\n // const recrusiveValuesFromContext =\n // await this.getRecrusiveClassesfromContexts(classType);\n // console.log(this.config.contexts);\n // console.log('recrusiveValuesFromContext', recrusiveValuesFromContext);\n\n for (const classFn of [\n // ...recrusiveValuesFromContext,\n ...Object.values(classes),\n ]) {\n const instance = DITaonContainer.resolve(classFn as any) as any;\n const classInstancesByNameObj = this.classInstancesByNameObj[classType];\n const className = ClassHelpers__NS__getName(classFn);\n // console.log({ classFn, classType, instance, place, className, 'classInstancesByNameObj': this.classInstancesByNameObj });\n classInstancesByNameObj[className] = instance;\n // update config\n this.config[Models__NS__ClassTypeKey[classType]][className] = classFn;\n this.objWithClassesInstancesArr[classType].push(instance);\n this.allClassesInstances[className] = instance;\n }\n }\n //#endregion\n\n //#region methods & getters / init classes\n async initClasses(): Promise<void> {\n if (this.isRemoteHost) {\n return;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n for (const classTypeName of [\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.ENTITY,\n Models__NS__ClassType.MIGRATION,\n ]) {\n //#region init class static _ property\n for (const classFun of this.getClassFunByArr(classTypeName) as any[]) {\n if (___NS__isFunction(classFun._)) {\n await classFun._();\n }\n }\n //#endregion\n }\n\n for (const classTypeName of [\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.MIGRATION,\n ]) {\n //#region init providers, repositories _ property\n // Helpers__NS__taskStarted(\n // `[taon] REINITING _ INS FN ${classTypeName} ${this.contextName} STARTED`,\n // );\n for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {\n if (___NS__isFunction(ctrl._)) {\n await ctrl._();\n }\n }\n // Helpers__NS__taskStarted(\n // `[taon] REINITING _ INS FN ${classTypeName} ${this.contextName} DONE`,\n // );\n //#endregion\n }\n }\n //#endregion\n\n //#region methods & getters / is active on\n isActiveOn(classInstance: object): boolean {\n let contextRef: EndpointContext =\n classInstance[Symbols__NS__ctxInClassOrClassObj];\n return this === contextRef;\n }\n //#endregion\n\n //#region methods & getters / uri\n get frontendHostUri() {\n const url = this.config?.frontendHost?.startsWith('http')\n ? this.config.frontendHost\n : `${globalThis?.location?.protocol || 'http:'}//${\n this.config?.frontendHost\n }`;\n const uri = new URL(url.replace(/\\/$/, ''));\n return uri;\n }\n\n get uri(): URL | undefined {\n const url = this.host ? new URL(this.host) : void 0;\n return url;\n }\n //#endregion\n\n //#region methods & getters / host uri protocol\n get uriProtocol(): string | undefined {\n return this.uri?.protocol;\n }\n //#endregion\n\n //#region methods & getters / host uri origin\n /**\n * Examples\n * http://localhost:3000\n * https://localhost (from localhost:80) *\n */\n get uriOrigin(): string | undefined {\n return this.uri?.origin;\n }\n //#endregion\n\n //#region methods & getters / host uri pathname\n /**\n * Exampels\n * http://localhost:3000/path/to/somewhere\n * https://localhost/path/to/somewhere (from localhost:80)\n */\n // get uriOriginWithPathname(): string | undefined {\n // return this.uri?.origin\n // ? this.uri?.origin + this.uriPathnameOrNothingIfRoot.replace(/\\/$/, '')\n // : undefined;\n // }\n\n get uriPathname(): string | undefined {\n return this.uri?.pathname;\n }\n //#endregion\n\n //#region methods & getters / uri pathname or nothing if root\n /**\n * Examples\n * http://localhost:3000/path/to/somewhere -> '/path/to/somewhere'\n * http://localhost:3000 -> '' #\n * https://localhost/path/to/ -> '/path/to/somewhere' # remove last slash\n */\n get uriPathnameOrNothingIfRoot(): string {\n const isNonRootProperPathName =\n this.uri?.pathname && this.uri.pathname !== '/';\n return isNonRootProperPathName ? this.uri.pathname.replace(/\\/$/, '') : '';\n }\n //#endregion\n\n //#region methods & getters / port from uri\n get uriPort(): string | undefined {\n if (!this.uri?.origin?.includes('localhost')) {\n return this.config?.hostPortNumber?.toString();\n }\n return this.uri?.port;\n }\n // TODO do i need 2 getters for port?\n\n /**\n * Port from uri as number\n * @returns {Number | undefined}\n */\n get port(): Number | undefined {\n return this.uri?.port ? Number(this.uriPort) : undefined;\n }\n //#endregion\n\n //#region methods & getters / is https server\n get isHttpServer() {\n return this.uriProtocol === 'https:';\n }\n //#endregion\n\n //#region methods & getters / is remote host\n /**\n * Check if context is for remote only\n */\n public get isRemoteHost(): boolean {\n return !!this.cloneOptions?.useAsRemoteContext;\n }\n //#endregion\n\n //#region methods & getters / context name\n /**\n * ipc/udp needs this\n */\n public get contextName(): string {\n // console.log(this.originalConfig);\n return this.config?.contextName || this.originalConfig?.contextName;\n }\n //#endregion\n\n //#region methods & getters / context name for communication\n /**\n * ipc/udp needs this\n */\n public get contextNameForCommunication(): string {\n let contextName = this.contextName;\n if (this.isRemoteHost) {\n if (this.sourceContext?.contextName) {\n contextName = this.sourceContext?.contextName;\n } else {\n // console.log(\n // `CANT GET SOURCE CONTEXT NAME FOR REMOTE CONTEXT ${this.contextName}`,\n // );\n }\n }\n return contextName;\n }\n //#endregion\n\n //#region methods & getters / get context type\n /**\n * Check context type\n */\n public get contextType(): 'normal' | 'remote' | 'abstract' | 'invalid' {\n if (this.config.abstract) {\n return 'abstract';\n }\n if (this.host) {\n return this.isRemoteHost ? 'remote' : 'normal';\n }\n return 'invalid';\n }\n //#endregion\n\n //#region methods & getters / current working directory\n public get cwd(): string {\n return this.config.cwd || process.cwd();\n }\n //#endregion\n\n //#region methods & getters / active context\n public get activeContext(): string | null {\n return this.config.activeContext || null;\n }\n //#endregion\n\n //#region methods & getters / app id\n public get appId(): string {\n return this.config.appId;\n }\n //#endregion\n\n //#region methods & getters / public assets\n public get publicAssets() {\n return this.config?.publicAssets || [];\n }\n //#endregion\n\n //#region methods & getters / is production mode\n get isProductionMode() {\n return this.config.productionMode;\n }\n //#endregion\n\n //#region methods & getters / host\n get host(): string | undefined {\n return this.config.host;\n }\n //#endregion\n\n //#region methods & getters / origin\n get origin(): string | undefined {\n return this.uri?.origin;\n }\n //#endregion\n\n //#region methods & getters / init subscribers\n /**\n * init typeorm subscribers\n */\n async initSubscribers() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init entities\n async initEntities() {\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 //#endregion\n\n //#region methods & getters / destroy\n async destroy(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init connection\n async initDatabaseConnection(): Promise<void> {\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/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region methods & getters / initialize metadata\n\n //#region methods & getters / update class calculate path\n private updateCalculatedPathsForControllers(\n rawConfigs: ControllerConfig[],\n classConfig: ControllerConfig,\n controllerClassFn: Function,\n ): void {\n const parentsCalculatedPath = ___NS__slice(rawConfigs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers__NS__isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n const contextNameForCommunication = this.contextNameForCommunication;\n\n if (TaonHelpers__NS__isGoodPath(classConfig.path)) {\n classConfig.calculatedPath = classConfig.path;\n } else {\n classConfig.calculatedPath = (\n `${this.uriPathnameOrNothingIfRoot}` +\n `/${apiPrefix}/${contextNameForCommunication}/tcp${parentsCalculatedPath}/` +\n `${ClassHelpers__NS__getName(controllerClassFn)}`\n )\n .replace(/\\/\\//g, '/')\n .split('/')\n .reduce((acc, bc) => {\n return ___NS__last(acc) === bc ? acc : [...acc, bc];\n }, [])\n .join('/');\n }\n\n // console.log('calculatedPath', classConfig.calculatedPath);\n }\n //#endregion\n\n //#region methods & getters / dedupe class configs\n private mergeControllerMethodsConfigs(\n rawConfigs: ControllerConfig[],\n classConfig: ControllerConfig,\n controllerClassFn: Function,\n ): void {\n const currentControllerMethodsConfig = classConfig.methods;\n\n ___NS__slice(rawConfigs, 1).forEach(bc => {\n const parentControllerMethods = ___NS__cloneDeep(bc.methods);\n\n for (const methodsName in parentControllerMethods) {\n if (parentControllerMethods.hasOwnProperty(methodsName)) {\n if (!currentControllerMethodsConfig[methodsName]) {\n //#region add non existed method\n const methodConfig = parentControllerMethods[methodsName];\n currentControllerMethodsConfig[methodsName] = methodConfig;\n //#endregion\n }\n }\n }\n });\n }\n\n //#endregion\n async initControllersHook(\n ctxStorage: ContextsEndpointStorage,\n ): Promise<void> {\n if (this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n for (const controllerClassFn of allControllers) {\n const instance = this.getInstanceBy(\n controllerClassFn as any,\n ) as TaonBaseController;\n if (___NS__isFunction(instance.afterAllCtxInited)) {\n await instance.afterAllCtxInited({ ctxStorage });\n }\n }\n }\n\n async initControllers(): Promise<void> {\n if (this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n // debugger\n // console.log('allControllers', allControllers);\n for (const controllerClassFn of allControllers) {\n // console.log(ClassHelpers__NS__getClassConfig(controllerClassFn));\n\n // const controllerName = ClassHelpers__NS__getName(controllerClassFn);\n\n // console.log(\n // `for ${controllerName}`,\n // ClassHelpers__NS__getClassConfig(controllerClassFn),\n // );\n\n controllerClassFn[Symbols__NS__classMethodsNames] =\n ClassHelpers__NS__getMethodsNames(controllerClassFn);\n\n const rawConfigs = ClassHelpers__NS__getControllerConfigs(controllerClassFn);\n // console.log(controllerName, { rawConfigs });\n // console.log(`Class config for ${ClassHelpers__NS__getName(controllerClassFn)}`, configs)\n const classConfig: ControllerConfig = rawConfigs[0];\n\n this.updateCalculatedPathsForControllers(\n rawConfigs,\n classConfig,\n controllerClassFn,\n );\n this.mergeControllerMethodsConfigs(\n rawConfigs,\n classConfig,\n controllerClassFn,\n );\n\n //#region combine middlewares from controllers\n classConfig.calculatedMiddlewaresControllerObj = {};\n [...rawConfigs].reverse().forEach(rc => {\n if (___NS__isFunction(rc.middlewares)) {\n classConfig.calculatedMiddlewaresControllerObj = rc.middlewares({\n parentMiddlewares: classConfig.calculatedMiddlewaresControllerObj,\n className(middlewareClass) {\n return ClassHelpers__NS__getName(controllerClassFn);\n },\n });\n }\n });\n //#endregion\n\n //#region group start\n/* */\n/* */\n \n this.logHttp &&\n console.groupCollapsed(\n `[taon][express-server] routes [${classConfig.className}]`,\n );\n/* */\n/* */\n \n //#endregion\n\n //#region init client or server methods\n const methodNames = Object.keys(classConfig.methods);\n for (const methodName of methodNames) {\n const methodConfig: Partial<MethodConfig> =\n classConfig.methods[methodName];\n\n //#region combine all class methods middlewares\n let calculatedMiddlewaresMethodObj = {};\n\n [...rawConfigs].reverse().forEach(rc => {\n if (rc.methods[methodName]) {\n const parentMethodConfig = rc.methods[methodName];\n\n if (___NS__isFunction(parentMethodConfig.middlewares)) {\n calculatedMiddlewaresMethodObj = parentMethodConfig.middlewares({\n parentMiddlewares: calculatedMiddlewaresMethodObj,\n className(middlewareClass) {\n return ClassHelpers__NS__getName(controllerClassFn);\n },\n });\n }\n }\n });\n\n // add class middlewares to method middlewares\n methodConfig.calculatedMiddlewaresMethodObj = {\n ...calculatedMiddlewaresMethodObj,\n ...classConfig.calculatedMiddlewaresControllerObj,\n };\n methodConfig.calculatedMiddlewares = Object.values(\n methodConfig.calculatedMiddlewaresMethodObj || {},\n );\n //#endregion\n\n // methodConfig.calculatedMiddlewares = TODO\n\n //#region initialized method express path\n const httpMethodType: CoreModels__NS__HttpMethod = methodConfig.type;\n\n // this is quick fix - in docker global path should not be used\n const globalPathPart =\n this.isRunningInsideDocker ||\n !this.frontendHostUri?.origin?.includes('localhost') // fe with domain -> is in docker\n ? `${this.uriPathnameOrNothingIfRoot.replace(\n /\\/$/,\n '',\n )}/${apiPrefix}/${this.contextName}`.replace(/\\/\\//, '/')\n : '';\n const expressPath = methodConfig.global\n ? `${globalPathPart}/${methodConfig.path?.replace(\n /\\/$/,\n '',\n )}`.replace(/\\/\\//, '/')\n : TaonHelpers__NS__getExpressPath(classConfig, methodConfig);\n\n //#endregion\n\n //#region init server\n // console.log({ expressPath });\n if (UtilsOs__NS__isNode || UtilsOs__NS__isWebSQL) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region init client\n const shouldInitClient =\n UtilsOs__NS__isBrowser || this.isRemoteHost || UtilsOs__NS__isWebSQL;\n // console.log('shouldInitClient', shouldInitClient);\n if (shouldInitClient) {\n // console.log(\n // 'initClient',\n // ClassHelpers__NS__getFullInternalName(controllerClassFn),\n // type,\n // methodConfig,\n // expressPath,\n // );\n await this.initClient(\n controllerClassFn,\n httpMethodType,\n methodConfig as any,\n expressPath,\n );\n }\n //#endregion\n }\n //#endregion\n\n //#region group end\n/* */\n/* */\n \n this.logHttp && console.groupEnd();\n/* */\n/* */\n \n //#endregion\n }\n }\n //#endregion\n\n //#region methods & getters / write active routes\n public writeActiveRoutes(): void {\n if (this.isRemoteHost || this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n // const contexts: EndpointContext[] = [this];\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 //#endregion\n\n //#region methods & getters / middlewares\n public get middlewares(): Models__NS__MiddlewareType[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init middlewares\n\n private async initCustomClientMiddlewares(): Promise<void> {\n const middlewares = this.getClassesInstancesArrBy(\n Models__NS__ClassType.MIDDLEWARE,\n )\n .map(f => f as TaonBaseMiddleware)\n .filter(f => ___NS__isFunction(f.interceptClient));\n\n middlewares.forEach(middlewareInstanceName => {\n const contextName = this.contextName;\n const interceptorName = `${contextName}-${ClassHelpers__NS__getName(\n middlewareInstanceName,\n )}`;\n Resource__NS__globalInterceptors.set(interceptorName, {\n intercept: ({ req, next }) => {\n const url = new URL(req.url);\n if (\n url.pathname.startsWith(\n `${this.uriPathnameOrNothingIfRoot}/${apiPrefix}/${contextName}/`,\n )\n ) {\n // console.log('intercepting', url.pathname, req);\n return middlewareInstanceName.interceptClient({\n req,\n next,\n });\n }\n return next.handle(req);\n },\n });\n });\n }\n\n private async initCustomBackendMiddlewares(): Promise<void> {\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 private async initBackendMiddlewares(): Promise<void> {\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 //#endregion\n\n //#region methods & getters / init methods node\n private initServer(\n //#region parameters\n httpMethodType: CoreModels__NS__HttpMethod,\n methodConfig: Partial<MethodConfig>,\n classConfig: ControllerConfig,\n expressPath: string,\n target: Function,\n //#endregion\n ): { expressPath: string; method: CoreModels__NS__HttpMethod } {\n //#region resolve variables\n // console.log(\n // `CLIENT: expressPath: \"${expressPath}\" interceptor for method: ${methodConfig.calculatedMiddlewares.length}`,\n // );\n\n const middlewareHandlers = methodConfig.calculatedMiddlewares\n .map(middlewareClassFun => {\n const middlewareInstance: TaonBaseMiddleware = this.getInstanceBy(\n middlewareClassFun as any,\n );\n if (\n middlewareInstance &&\n ___NS__isFunction(middlewareInstance.interceptServerMethod)\n ) {\n const middlewareFn = ClassHelpers__NS__asyncHandler(\n async (\n req: expressType.Request,\n res: expressType.Response,\n next: expressType.NextFunction,\n ) => {\n await middlewareInstance.interceptServerMethod(\n {\n req,\n res,\n next,\n },\n {\n methodName: methodConfig.methodName,\n expressPath,\n httpRequestType: methodConfig.type,\n },\n );\n },\n );\n return middlewareFn;\n }\n })\n .filter(f => !!f) as expressType.RequestHandler[];\n\n // const url = this.uri;\n\n //#region get result\n const getResult = async (resolvedParams, req, res) => {\n const response: Models__NS__Http__NS__Response<any> =\n methodConfig.descriptor.value.apply(\n /**\n * Context for method @GET,@PUT etc.\n */\n this.getInstanceBy(target as any),\n /**\n * Params for method @GET, @PUT etc.\n */\n resolvedParams,\n );\n let result = await getResponseValue(response, { req, res });\n return result;\n };\n //#endregion\n\n // console.log(`BACKEND: expressPath: \"${expressPath}\" `);\n //#endregion\n\n if (UtilsOs__NS__isElectron) {\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 if (!this.isRemoteHost) {\n //#region apply dummy websql express routers\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\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/* */\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 return {\n expressPath: expressPath,\n method: methodConfig.type,\n };\n }\n //#endregion\n\n //#region methods & getters / send error\n protected sendError(\n res: expressType.Response,\n error: unknown,\n req: expressType.Request,\n expressPath: string,\n ): void {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init client\n /**\n * client can be browser or nodejs (when remote host)\n */\n private async initClient(\n target: Function,\n httpRequestType: CoreModels__NS__HttpMethod,\n methodConfig: Partial<MethodConfig>, // Models.Http.Rest.MethodConfig,\n expressPath: string,\n ): Promise<void> {\n const ctx = this;\n\n // console.log(\n // `CLIENT: expressPath: \"${expressPath}\" interceptor for method: ${methodConfig.calculatedMiddlewares?.length} `,\n // );\n\n //#region init middlewares\n const middlewares = methodConfig.calculatedMiddlewares;\n const middlewaresInstances = middlewares\n .map(f => this.getInstanceBy(f as any) as TaonBaseMiddleware)\n .filter(f => ___NS__isFunction(f.interceptClientMethod));\n\n middlewaresInstances.forEach(instance => {\n const middlewareName = ClassHelpers__NS__getName(instance);\n // middlewareName - only needed for inheritace and uniqness of interceptors\n const interceptorKey = `${middlewareName}-${methodConfig.type?.toUpperCase()}-${expressPath}`;\n Resource__NS__methodsInterceptors.set(interceptorKey, {\n intercept: ({ req, next }) => {\n return instance.interceptClientMethod(\n {\n req,\n next,\n },\n {\n methodName: methodConfig.methodName,\n expressPath,\n httpRequestType: httpRequestType,\n },\n );\n },\n });\n });\n //#endregion\n\n // : { received: any; /* Rest<any, any> */ }\n // this.logHttp &&\n // console.log(`${httpRequestType?.toUpperCase()} ${expressPath} `);\n // console.log('INITING', methodConfig); // TODO inject in static\n //#region resolve storage\n // TODO not a good idea\n const storage = globalThis;\n //#endregion\n\n const orgMethods = target.prototype[methodConfig.methodName];\n\n //#region handle electron ipc request\n\n if (UtilsOs__NS__isElectron) {\n const ipcRenderer = (window as any).require('electron').ipcRenderer;\n target.prototype[methodConfig.methodName] = function (...args) {\n const received = new Promise(async (resolve, reject) => {\n const headers = {};\n const { request, response } = TaonHelpers__NS__websqlMocks(headers);\n\n //#region @browser\n ipcRenderer.once(\n TaonHelpers__NS__ipcKeyNameResponse(target, methodConfig, expressPath),\n (event, responseData) => {\n let res: any = responseData;\n console.log({ responseData });\n try {\n const body = res;\n const responseStrinOrBlob: any =\n Helpers__NS__isBlob(body) || ___NS__isString(body)\n ? body\n : JSON.stringify(body);\n res = new HttpResponse(\n `${ctx.uriOrigin}${\n '' // TODO express path\n }${methodConfig.path} `,\n methodConfig.type,\n responseStrinOrBlob,\n RestHeaders.from(headers),\n 200,\n {\n // responseMapping: {\n // // entity: ()=> TODO for electron\n // },\n },\n false,\n );\n\n resolve(res);\n } catch (error) {\n console.error(error);\n reject(error);\n }\n },\n );\n ipcRenderer.send(\n TaonHelpers__NS__ipcKeyNameRequest(target, methodConfig, expressPath),\n args,\n );\n //#endregion\n });\n received['observable'] = from(received);\n return {\n received,\n request(axiosConfig: Ng2RestAxiosRequestConfig) {\n return received;\n },\n } as Models__NS__Http__NS__ClientAction<any>;\n };\n return;\n }\n //#endregion\n\n //#region handling web sql request\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/* */\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 //#endregion\n\n //#region handle normal request\n\n target.prototype[methodConfig.methodName] = function (\n this: {},\n ...args\n ): Models__NS__Http__NS__ClientAction<any> {\n // console.log('[init method browser] FRONTEND expressPath', expressPath)\n // const productionMode = FrameworkContext.isProductionMode;\n\n //#region resolve frontend parameters\n\n if (!storage[Symbols__NS__old.ENDPOINT_META_CONFIG])\n storage[Symbols__NS__old.ENDPOINT_META_CONFIG] = {};\n if (!storage[Symbols__NS__old.ENDPOINT_META_CONFIG][ctx.uriOrigin])\n storage[Symbols__NS__old.ENDPOINT_META_CONFIG][ctx.uriOrigin] = {};\n const endpoints = storage[Symbols__NS__old.ENDPOINT_META_CONFIG];\n let rest: ReturnType<typeof Resource__NS__create>;\n const requestHeaders = RestHeaders.from({});\n if (!endpoints[ctx.uriOrigin][expressPath]) {\n if (methodConfig.contentType && !methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n });\n } else if (methodConfig.contentType && methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n responsetypeaxios: methodConfig.responseType,\n });\n } else if (!methodConfig.contentType && methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n responsetypeaxios: methodConfig.responseType,\n });\n } else {\n rest = Resource__NS__create(\n ctx.uriOrigin,\n expressPath,\n {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n },\n // Symbols__NS__old.MAPPING_CONFIG_HEADER as any,\n // Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY as any,\n );\n }\n\n endpoints[ctx.uriOrigin][expressPath] = rest;\n } else {\n rest = endpoints[ctx.uriOrigin][expressPath] as any;\n }\n\n const method = httpRequestType.toLowerCase();\n\n const pathPrams = {};\n let queryParams = {};\n let bodyObject = {};\n args.forEach((param, i) => {\n let currentParam: Partial<ParamConfig> = void 0 as any;\n\n for (let pp in methodConfig.parameters) {\n let v = methodConfig.parameters[pp];\n if (v.index === i) {\n currentParam = v;\n break;\n }\n }\n\n if (!currentParam) {\n const errorMessage =\n `[${config.frameworkName}] Unable to resolve parameter` +\n ` at index ${i} for method ${methodConfig.methodName} at path ${expressPath}.`;\n\n/* */\n/* */\n/* */\n \n throw new Error(errorMessage);\n }\n\n const optionsDecodeHeader = {\n useFirstArrayItemClassNameForAllElements: true,\n };\n\n if (currentParam.paramType === 'Path') {\n //#region handle path params\n pathPrams[currentParam.paramName] = param;\n //#endregion\n }\n if (currentParam.paramType === 'Query') {\n //#region handle query params\n if (currentParam.paramName) {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n `${Symbols__NS__old.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n queryParams[currentParam.paramName] = param;\n } else {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n queryParams = ___NS__cloneDeep(param);\n }\n //#endregion\n }\n if (currentParam.paramType === 'Header') {\n //#region handler header params\n if (currentParam.paramName) {\n if (currentParam.paramName === Symbols__NS__old.MDC_KEY) {\n // parese MDC\n requestHeaders.set(\n currentParam.paramName,\n encodeURIComponent(JSON.stringify(param)),\n );\n } else {\n requestHeaders.set(currentParam.paramName, param);\n }\n } else {\n for (let header in param) {\n requestHeaders.set(header, param[header]);\n }\n }\n //#endregion\n }\n if (currentParam.paramType === 'Cookie') {\n //#region handle cookie params\n Resource__NS__Cookies.write(\n currentParam.paramName,\n param,\n currentParam.expireInSeconds,\n );\n //#endregion\n }\n if (currentParam.paramType === 'Body') {\n //#region handle body params\n if (currentParam.paramName) {\n if (ClassHelpers__NS__getName(bodyObject) === 'FormData') {\n //#region prevent posting/putting not full body as FormData\n throw new Error(`[taon - framework] Don use param names when posting / putting FormData.\n Use this:\n// ...\n(@Taon.Http.Param.Body() formData: FormData) ...\n// ...\n\ninstead\n // ...\n (@Taon.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n// ...\n`);\n //#endregion\n }\n\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n `${Symbols__NS__old.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n bodyObject[currentParam.paramName] = param;\n } else {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n bodyObject = param;\n }\n //#endregion\n }\n });\n\n if (\n typeof bodyObject === 'object' &&\n ClassHelpers__NS__getName(bodyObject) !== 'FormData'\n ) {\n //#region handle circular objects in body params\n let circuralFromItem = [];\n bodyObject = JSON10.parse(\n JSON10.stringify(bodyObject, void 0, void 0, circs => {\n circuralFromItem = circs;\n }),\n );\n requestHeaders.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON10.stringify(circuralFromItem),\n );\n //#endregion\n }\n\n if (typeof queryParams === 'object') {\n //#region handle circular objects in query params\n let circuralFromQueryParams = [];\n queryParams = JSON10.parse(\n JSON10.stringify(queryParams, void 0, void 0, circs => {\n circuralFromQueryParams = circs;\n }),\n );\n\n requestHeaders.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n JSON10.stringify(circuralFromQueryParams),\n );\n //#endregion\n }\n //#endregion\n\n const httpResultObj: Models__NS__Http__NS__ClientAction<any> = {\n get received() {\n return rest\n .model(pathPrams, { headers: requestHeaders })\n [method](bodyObject, [queryParams]);\n },\n request(axiosConfig?: Ng2RestAxiosRequestConfig) {\n return rest\n .model(pathPrams, { headers: requestHeaders })\n [method](bodyObject, [queryParams], axiosConfig);\n },\n };\n return httpResultObj as Models__NS__Http__NS__ClientAction<any>;\n };\n //#endregion\n }\n //#endregion\n}","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport type { EndpointContext } from './endpoint-context';\n\nexport class ContextsEndpointStorage {\n SPECIAL_APP_READY_MESSAGE = CoreModels__NS__SPECIAL_APP_READY_MESSAGE;\n private taonEndpointContexts = new Map<string, EndpointContext>();\n\n //#region singleton\n private static instance: ContextsEndpointStorage;\n\n private constructor() {\n // Private constructor to prevent direct instantiation\n }\n\n public static get Instance(): ContextsEndpointStorage {\n if (!ContextsEndpointStorage.instance) {\n ContextsEndpointStorage.instance = new ContextsEndpointStorage();\n }\n return ContextsEndpointStorage.instance;\n }\n //#endregion\n\n set(context: EndpointContext): void {\n if (!this.taonEndpointContexts.has(context.contextName)) {\n this.taonEndpointContexts.set(context.contextName, context);\n }\n }\n\n get arr(): EndpointContext[] {\n return Array.from(this.taonEndpointContexts.values()).filter(\n f => f.contextType === 'normal',\n );\n }\n\n getBy(\n context: Partial<EndpointContext> | string,\n ): EndpointContext | undefined {\n if (typeof context === 'string') {\n return this.taonEndpointContexts.get(context) as any;\n }\n return this.taonEndpointContexts.get(context.contextName) as any;\n }\n}\n\n// TODO QUICK_FIX @LAST encapsulate this => move to separate package\nglobalThis['$$$ContextsEndpointStorage$$$'] = ContextsEndpointStorage.Instance;","//#region imports\n\nimport { // TODO somehow backend build is touching this...\n BreakpointObserver,\n // @ts-ignore\n} from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\nconst BRK = {\n mobile: '(max-width: 599.98px)',\n // tablet: obsvious\n desktop: '(min-width: 840.00px)',\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BreakpointsService {\n private sub = new Subject<'mobile' | 'tablet' | 'desktop'>();\n\n public listenTo() {\n setTimeout(() => {\n this.sub.next(this.current);\n });\n return this.sub.asObservable();\n }\n\n private current: 'mobile' | 'tablet' | 'desktop';\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver.observe([BRK.mobile, BRK.desktop]).subscribe(state => {\n if (!___NS__isUndefined([BRK.mobile].find(f => state.breakpoints[f]))) {\n this.current = 'mobile';\n this.sub.next('mobile');\n } else if (\n !___NS__isUndefined([BRK.desktop].find(f => state.breakpoints[f]))\n ) {\n this.current = 'desktop';\n this.sub.next('desktop');\n } else {\n this.current = 'tablet';\n this.sub.next('tablet');\n }\n });\n\n setTimeout(() => {\n if (breakpointObserver.isMatched([BRK.mobile])) {\n this.current = 'mobile';\n this.sub.next('mobile');\n } else if (breakpointObserver.isMatched([BRK.desktop])) {\n this.current = 'desktop';\n this.sub.next('desktop');\n } else {\n this.current = 'tablet';\n this.sub.next('tablet');\n }\n });\n }\n}","//#region import\nimport {\n computed,\n inject,\n Injectable,\n signal,\n TemplateRef,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport { StorSignal, TaonStor__NS__awaitAll, TaonStor__NS__inFile, TaonStor__NS__inIndexedDbStorage, TaonStor__NS__inJson, TaonStor__NS__inLocalstorage, TaonStor__NS__inSessionStorage } from 'taon-storage/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { BreakpointsService } from './breakpoints.service';\n//#endregion\n\nexport enum TaonAdminPanelMode {\n NONE = 'NONE',\n ICON = 'ICON',\n POPUP = 'POPUP',\n SIDE = 'SIDE',\n FULL_SCREEN = 'FULL_SCREEN',\n}\n\nexport interface TaonAdminTab {\n name: string;\n templateOrIframeLink?: string | TemplateRef<any>;\n}\n\nexport class TaonAdmin {\n private static _instance: TaonAdmin;\n\n static init(): void {\n TaonAdmin.Instance;\n }\n\n static get Instance(): TaonAdmin {\n if (!this._instance) {\n this._instance = new TaonAdmin();\n }\n return this._instance;\n }\n\n private constructor() {\n // console.log('TAON ADMIN INSTANCE CREATED');\n }\n\n public additionalTabs = signal([] as TaonAdminTab[]);\n\n //#region fields & getters / admin panel mode\n\n public adminPanelMode = TaonStor__NS__inLocalstorage(\n {\n defaultValue: TaonAdminPanelMode.NONE,\n keyOrPath: 'adminPanelMode',\n },\n TaonAdminService,\n );\n //#endregion\n\n //#region fields & getters / keep websql database data after reload\n /**\n * Property used in taon\n */\n public keepWebsqlDbDataAfterReload = TaonStor__NS__inLocalstorage(\n {\n defaultValue: false,\n keyOrPath: 'keepWebsqlDbDataAfterReload',\n },\n TaonAdminService,\n );\n //#endregion\n}\n\n//#region @browser\n@Injectable({ providedIn: 'root' })\n//#endregion\nexport class TaonAdminService {\n //#region singleton + constructor\n\n public readonly isIframe: boolean =\n window.location !== window.parent.location;\n\n private breakpointsService = inject(BreakpointsService);\n\n constructor() {\n window['Taon'] = this;\n window['taon'] = this;\n\n this.breakpointsService.listenTo().subscribe(breakpoint => {\n // console.log({ breakpoint });\n this.isDesktop.set(breakpoint === 'desktop');\n if (this.isDesktop()) {\n //\n } else {\n this.adminPanelMode.set(TaonAdminPanelMode.NONE);\n }\n });\n }\n\n //#endregion\n\n public isDesktop = signal(true);\n\n public get adminPanelMode(): StorSignal<TaonAdminPanelMode> {\n return TaonAdmin.Instance.adminPanelMode;\n }\n\n public get keepWebsqlDbDataAfterReload(): StorSignal<boolean> {\n return TaonAdmin.Instance.keepWebsqlDbDataAfterReload;\n }\n\n public get additionalTabs(): WritableSignal<TaonAdminTab[]> {\n return TaonAdmin.Instance.additionalTabs;\n }\n\n admin(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.FULL_SCREEN);\n }\n\n show(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.POPUP);\n }\n\n hide(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.NONE);\n }\n\n private devTapCount = 0;\n\n private devTapTimeout: any;\n\n enableDeveloperIf5Timetap(): void {\n this.devTapCount++;\n\n // reset timer every tap\n clearTimeout(this.devTapTimeout);\n\n this.devTapTimeout = setTimeout(() => {\n this.devTapCount = 0;\n }, 2000); // 2s window to complete taps\n\n if (this.devTapCount >= 5) {\n this.devTapCount = 0;\n\n this.show();\n }\n }\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport { EndpointContext } from './endpoint-context';\nimport { ContextsEndpointStorage } from './endpoint-context-storage';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\n//#endregion\n\n/**\n * @returns function that returns context function.\n * Context function can be used to dynamically\n * create context with specific configuration.\n */\nexport const createContextTemplate = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARE extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARE\n >,\n) => {\n return () => {\n return createContext<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARE\n >(configFn);\n };\n};\n\n/**\n * REQURIED PROPERTY:\n * - contextName\n */\nconst createContextFn = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARES extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARES\n >,\n cloneOptions: Models__NS__TaonCtxCloneParams,\n) => {\n cloneOptions = cloneOptions || {};\n let config = configFn({});\n // console.log(\n // `\n\n // [Taon] Creating context ${config.contextName}...`,\n // {config},\n // );\n const endpointContextRef = new EndpointContext(\n config,\n configFn,\n cloneOptions,\n );\n\n const res = {\n //#region contexts\n get contextName() {\n return config.contextName;\n },\n //#endregion\n\n get appId() {\n return config.appId;\n },\n\n cloneAsRemote: (cloneOpt?: { overrideRemoteHost?: string }) => {\n cloneOpt = cloneOpt || {};\n const opt: Models__NS__TaonCtxCloneParams = {\n ...cloneOpt,\n sourceContext: endpointContextRef,\n useAsRemoteContext: true,\n };\n return createContextFn(configFn, opt);\n },\n\n cloneAsNormal: (cloneOpt?: { overrideHost?: string }) => {\n cloneOpt = cloneOpt || {};\n const opt: Models__NS__TaonCtxCloneParams = {\n ...cloneOpt,\n sourceContext: endpointContextRef,\n useAsRemoteContext: false,\n };\n return createContextFn(configFn, opt);\n },\n\n //#region context\n /**\n * @deprecated\n * - get reference to internal context\n */\n async __ref() {\n if (!endpointContextRef.inited) {\n await endpointContextRef.init({\n initFromRecrusiveContextResovle: true,\n });\n }\n return endpointContextRef;\n },\n /**\n * only for internal use\n * @deprecated\n */\n get __refSync() {\n return endpointContextRef;\n },\n getClassInstance<T>(ctor: new (...args: any[]) => T): T {\n return endpointContextRef.getInstanceBy(ctor);\n },\n\n getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T {\n const classFun = endpointContextRef.getClassFunByClass(ctor);\n return classFun as any;\n //#region old\n // TODO hmmmm for now context for controller inside api service\n // const allContexts = Object.values(classFun[Symbols__NS__orignalClassClonesObj] || {}).map(classFn => {\n // return {\n // ctx: classFn[Symbols__NS__ctxInClassOrClassObj] as EndpointContext,\n // classFn,\n // }\n // })\n // const activeContext = allContexts.find(c => c.ctx.inited);\n // debugger\n // console.log('activeContext', activeContext.ctx.contextName);\n // return activeContext.ctx.getClassFunByClass(ctor) as any;\n //#endregion\n },\n //#endregion\n //#region initialize\n /**\n * - create controller instances for context\n * - init database (if enable) + migation scripts\n */\n initialize: async (\n overrideOptions?: Models__NS__TaonInitializeParams,\n ): Promise<EndpointContext> => {\n return await new Promise(async (resolve, reject) => {\n //#region init in set timeout\n setTimeout(async () => {\n if (UtilsOs__NS__isRunningInDocker()) {\n const activeContext = config?.activeContext || null;\n if (\n ___NS__isString(activeContext) &&\n activeContext !== '' &&\n activeContext !== config?.contextName\n ) {\n console.warn(\n `[taon] Context ${endpointContextRef.contextName} is not active context, skipping initialization.`,\n );\n resolve(endpointContextRef);\n return;\n }\n }\n\n await endpointContextRef.init({\n ...overrideOptions,\n });\n\n if (config.abstract) {\n throw new Error(`Abstract context can not be initialized`);\n }\n\n await endpointContextRef.initEntities();\n await endpointContextRef.initSubscribers();\n\n await endpointContextRef.initDatabaseConnection();\n\n await endpointContextRef.dbMigrations.ensureMigrationTableExists();\n\n // console.log(\n // 'connection subscribers',\n // endpointContextRef?.connection?.subscribers,\n // );\n // debugger;\n await endpointContextRef.initControllers();\n await endpointContextRef.startServer();\n/* */\n/* */\n \n\n await endpointContextRef.initClasses();\n if (endpointContextRef.databaseConfig) {\n //#region handle websql reload data\n //#region @browser\n let keepWebsqlDbDataAfterReload = false;\n\n keepWebsqlDbDataAfterReload =\n TaonAdmin.Instance?.keepWebsqlDbDataAfterReload();\n\n // console.log({ keepWebsqlDbDataAfterReload });\n\n if (keepWebsqlDbDataAfterReload) {\n !UtilsOs__NS__isRunningInCliMode() &&\n Helpers__NS__info(\n `[taon] Keeping websql data after reload ` +\n `(context=${endpointContextRef.contextName}).`,\n );\n } else {\n Helpers__NS__info(\n `[taon] Dropping all tables and data ` +\n `(context=${endpointContextRef.contextName}).`,\n );\n }\n //#endregion\n //#endregion\n\n //#region TODO this may be usefull but for now\n // 2 separate contexts are fine\n // const shouldStartRemoteHost = endpointContextRef.mode !== 'remote-backend(tcp+udp)';\n // if(shouldStartRemoteHost) {\n // const endpointContextRemoteHostRef = new EndpointContext(config, configFn);\n // await endpointContextRemoteHostRef.init({\n // overrideRemoteHost: endpointContextRef.host,\n // overrideHost: null,\n // });\n // endpointContextRemoteHostRef.initMetadata();\n\n // endpointContextRef.__contextForControllerInstanceAccess = endpointContextRemoteHostRef;\n // }\n //#endregion\n\n //#region run migrations tasks\n if (endpointContextRef.onlyMigrationRun) {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Running only migrations (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();\n } else if (endpointContextRef.onlyMigrationRevertToTimestamp) {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Reverting migrations to timestamp ${\n endpointContextRef.onlyMigrationRevertToTimestamp\n } (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.revertMigrationToTimestamp(\n endpointContextRef.onlyMigrationRevertToTimestamp,\n );\n } else {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Running all not applied migrations (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();\n }\n //#endregion\n }\n\n ContextsEndpointStorage.Instance.set(endpointContextRef);\n\n resolve(endpointContextRef);\n });\n //#endregion\n });\n },\n /**\n * realtime communication with server\n * TCP(upgrade) socket.io (or ipc) based.\n */\n get realtime() {\n return {\n get client() {\n if(!endpointContextRef) {\n throw new Error(`Please .initialize() context before using <context>.realtime.client.<anything> `)\n }\n return endpointContextRef.realtimeClient;\n },\n get server() {\n if(!endpointContextRef) {\n throw new Error(`Please .initialize() context before using <context>.realtime.server.<anything> `)\n }\n return endpointContextRef.realtimeServer;\n },\n };\n },\n };\n return res;\n};\n//#endregion\n\nexport const createContext = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARES extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARES\n >,\n) => {\n return createContextFn(configFn, { useAsRemoteContext: false });\n};\n\nexport type TaonContext = ReturnType<typeof createContext>;\n\n// const AA = createContext(() => ({ contextName: 'aa' }));\n// const BB = AA.cloneAsRemoteContext();","import type { TaonBaseInjector } from './base-classes/base-injector';\nimport type { EndpointContext } from './endpoint-context';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\n\nexport const inject = <T>(entity: () => new (...args: any[]) => T): T => {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n if (propName === 'hasOwnProperty') {\n return () => false;\n }\n\n const ctor = entity();\n const contextFromClass = ctor[\n Symbols__NS__ctxInClassOrClassObj\n ] as EndpointContext;\n const resultContext = contextFromClass;\n if (resultContext) {\n let instance = resultContext.inject(ctor, {\n parentInstanceThatWillGetInjectedStuff: this,\n }) as TaonBaseInjector;\n // console.log('instance', instance);\n\n if (propName === 'getOriginalPrototype') {\n return () => Object.getPrototypeOf(instance);\n }\n if (propName === 'getOriginalConstructor') {\n return () => instance.constructor;\n }\n\n const methods = ctor[Symbols__NS__classMethodsNames] || [];\n const isMethods = methods.includes(propName);\n\n const methodOrProperty = isMethods\n ? instance[propName].bind(instance)\n : instance[propName];\n\n // console.log(\n // `methodOrProperty from proxy ${propName?.toString()} = isMethods:${isMethods}`,\n // methods,\n // );\n return methodOrProperty;\n }\n },\n },\n ) as T;\n};\n\n// export const injectController = inject;\n\n// export type SubscriptionEvent<T> = {\n// name: keyof T;\n// data: any;\n// };\n\n/**\n * TODO\n */\n// export const injectEntityEvents = <T>(\n// subscriberClassResolveFn: () => new (...args: any[]) => T,\n// eventName?: keyof Omit<EntitySubscriberInterface,'listenTo'> ,\n// ): Observable<SubscriptionEvent<T>> => {\n// const eventsSrc = new Subject<SubscriptionEvent<T>>();\n// const obs = eventsSrc.asObservable();\n\n// let isFirstSubscription = true;\n\n// const proxyObservable = new Proxy(obs, {\n// get(target, prop, receiver) {\n// if (prop === 'subscribe') {\n// return (...args: any[]) => {\n// if (isFirstSubscription) {\n// isFirstSubscription = false;\n// const subscriberClassFN: typeof TaonBaseClass =\n// subscriberClassResolveFn() as any;\n// const ctx = subscriberClassFN[\n// Symbols__NS__ctxInClassOrClassObj\n// ] as EndpointContext;\n// if (!ctx) {\n// throw new Error(\n// `You are trying to inject class without context. Use context like this:\n\n// class MyClassSubscriber extends BaseSubscriber {\n// ${eventName as any}() {\n// \\/\\/ your code here\n// }\n// }\n\n// Taon.injectSubscriberEvents( MyContext.getInstance(()=> MyClassSubscriber), '${eventName as any}' )\n\n// `,\n// );\n// }\n// const subscriberInstance = ctx.getInstanceBy(subscriberClassFN);\n// // subscriberInstance TODO @LAST subscriber event from instance\n// // const entity = subscriberClassFN.prototype.listenTo();\n// console.log('First subscription, you can access arguments here:', {\n// subscriberClassFN,\n// eventName,\n// });\n// }\n// return target.subscribe(...args);\n// };\n// }\n// return Reflect.get(target, prop, receiver);\n// },\n// });\n\n// return proxyObservable as Observable<SubscriptionEvent<T>>;\n// };","//#region imports\nimport type { Response } from 'express';\nimport { JSON10 } from 'json10/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { decodeMappingForHeaderJson } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { config } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\n//#endregion\n\n//#region get transform function\n/**\n * @deprecated\n */\nexport const getTransformFunction = (target: Function) => {\n if (!target) {\n return;\n }\n\n // const className = ClassHelpers__NS__getName(target)\n // target = ClassHelpers.getBy(className);\n\n if (!target) {\n return void 0;\n }\n const configs = ClassHelpers__NS__getControllerConfigs(target);\n // console.log(`CONFIGS TO CHECK`, configs)\n const functions = configs\n .map(c => {\n if (___NS__isFunction(c.browserTransformFn)) {\n return c.browserTransformFn;\n }\n })\n .filter(f => ___NS__isFunction(f));\n return functions.length === 0\n ? void 0\n : function (entity) {\n for (let index = functions.length - 1; index >= 0; index--) {\n const transformFun = functions[index];\n transformFun(entity);\n }\n return entity;\n };\n};\n//#endregion\n\n//#region single transform\n/**\n * @deprecated\n */\nexport const singleTransform = (json: any) => {\n let ptarget = ClassHelpers__NS__getClassFnFromObject(json);\n let pbrowserTransformFn = getTransformFunction(ptarget);\n if (pbrowserTransformFn) {\n const newValue = pbrowserTransformFn(json);\n if (!___NS__isObject(newValue)) {\n console.error(\n `Please return object in transform function for class: ` +\n `${ClassHelpers__NS__getName(json)}`,\n );\n } else {\n json = newValue;\n }\n }\n return json;\n};\n//#endregion\n\nexport class EntityProcess {\n //#region fields\n /**\n * Data to send\n */\n data: any;\n\n /**\n * Say yes to:\n * - circural object\n * - transform browser fn in decorator\n */\n private advancedManipulation: boolean = false;\n\n private entityMapping: any;\n\n private circural = [];\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * Data from backend\n */\n private result: any,\n private response: Response,\n ) {}\n //#endregion\n\n //#region check advanced manipulation\n private checkAdvancedManiupulation() {\n if (___NS__isFunction(this.result)) {\n this.advancedManipulation = true;\n this.result = this.result();\n }\n }\n //#endregion\n\n //#region run\n public async run() {\n this.checkAdvancedManiupulation();\n this.data = this.result;\n\n if (___NS__isObject(this.result)) {\n if (this.advancedManipulation) {\n this.applayTransformFn();\n }\n\n this.setHeaders();\n }\n this.send();\n }\n //#endregion\n\n //#region apply transform function\n applayTransformFn() {\n if (___NS__isObject(this.data) && !___NS__isArray(this.data)) {\n this.data = singleTransform(this.data);\n }\n const { include } = { include: [] };\n walk.Object(\n this.data,\n (value, lodashPath, changeValue, { skipObject, isCircural }) => {\n // console.log(`${isCircural ? 'CIR' : 'NOT'} : ${lodashPath}`)\n if (!isCircural) {\n if (!___NS__isArray(value) && ___NS__isObject(value)) {\n changeValue(singleTransform(value));\n }\n }\n },\n { checkCircural: true, breadthWalk: true, include },\n );\n\n const { circs } = walk.Object(this.data, void 0, {\n checkCircural: true,\n breadthWalk: true,\n include,\n });\n this.circural = circs;\n }\n //#endregion\n\n //#region set headers\n setHeaders(): void {\n const { include } = { include: [] };\n\n const className = ClassHelpers__NS__getName(this.data);\n const doNothing =\n ___NS__isNil(this.data) ||\n [\n 'Object',\n '',\n // void 0, null // TODO not sure about commenting this\n ].includes(className);\n // console.log('doNothing', doNothing)\n if (!doNothing) {\n // TODO not needed ?\n // const cleaned = JSON10.cleaned(this.data, void 0, {\n // breadthWalk: true,\n // include,\n // });\n // decodeMappingForHeaderJson is handling nested objects ok\n this.entityMapping = decodeMappingForHeaderJson(this.data, {\n useFirstArrayItemClassNameForAllElements: !this.advancedManipulation,\n });\n\n this.response.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER,\n JSON.stringify(this.entityMapping),\n );\n if (this.advancedManipulation) {\n this.response.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON.stringify(this.circural),\n );\n }\n }\n }\n //#endregion\n\n //#region send\n send() {\n if (this.advancedManipulation) {\n const browserKey = config.folder.browser;\n let toSend = ___NS__isArray(this.data) ? [] : {};\n\n const { include = [], exclude = [] } = { include: [], exclude: [] };\n\n walk.Object(\n this.data,\n (value, lodashPath, changeVAlue, { isCircural, skipObject }) => {\n // console.log(`${isCircural ? 'CIR' : 'NOT'} ${lodashPath}`)\n if (isCircural) {\n ___NS__set(toSend, lodashPath, null);\n } else {\n const fun = getTransformFunction(\n ClassHelpers__NS__getClassFnFromObject(value),\n );\n\n if (___NS__isFunction(fun)) {\n ___NS__set(toSend, `${lodashPath}.${browserKey}`, value[browserKey]);\n const indexProp = ClassHelpers__NS__getUniqueKey(value);\n ___NS__set(toSend, `${lodashPath}.${indexProp}`, value[indexProp]);\n // skipObject()\n } else {\n ___NS__set(toSend, lodashPath, value);\n }\n }\n },\n { checkCircural: true, breadthWalk: true, include },\n );\n\n if (!___NS__isArray(this.data)) {\n let funParent = getTransformFunction(\n ClassHelpers__NS__getClassFnFromObject(this.data),\n );\n // if (this.mdc && this.mdc.exclude && this.mdc.exclude.length > 0) {\n // console.log(`funParent !!! have fun? ${!!funParent} `)\n // }\n if (___NS__isFunction(funParent)) {\n toSend = {\n [browserKey]: toSend[browserKey],\n };\n }\n Object.keys(this.data).forEach(prop => {\n if (prop !== browserKey) {\n const v = this.data[prop];\n if (\n !(\n (include.length > 0 && !include.includes(prop)) ||\n (exclude.length > 0 && exclude.includes(prop))\n )\n ) {\n if (\n ClassHelpers__NS__isContextClassObject(v) &&\n ___NS__isFunction(\n getTransformFunction(ClassHelpers__NS__getClassFnFromObject(v)),\n )\n ) {\n toSend[prop] = {\n [browserKey]: v[browserKey],\n };\n const indexProp = ClassHelpers__NS__getUniqueKey(v);\n toSend[prop][indexProp] = this.data[prop][indexProp];\n for (const key in v) {\n if (\n ___NS__isObject(v) &&\n v.hasOwnProperty(key) &&\n ![indexProp, config.folder.browser].includes(key) &&\n (___NS__isString(v[key]) ||\n ___NS__isNumber(v[key]) ||\n ___NS__isDate(v[key]) ||\n ___NS__isNull(v[key]) ||\n ___NS__isBoolean(v[key]))\n ) {\n toSend[prop][key] = v[key];\n }\n }\n } else {\n toSend[prop] = v;\n }\n }\n }\n });\n }\n\n // toSend = Helpers.JSON.cleaned(toSend, void 0, { breadthWalk: true })\n this.response.json(toSend);\n } else {\n this.response.json(this.data);\n }\n }\n //#endregion\n}","import { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport const cloneObj = <CloneT>(\n override: Partial<CloneT>,\n classFn: Function,\n): CloneT => {\n const result = ___NS__merge(new (classFn as any)(), ___NS__cloneDeep(this));\n walk.Object(\n override || {},\n (value, lodashPath) => {\n const valueIsEmptyArray = Array.isArray(value) && value.length === 0;\n if (!valueIsEmptyArray && (___NS__isNil(value) || ___NS__isFunction(value) || ___NS__isObject(value))) {\n // skipping\n } else {\n ___NS__set(result, lodashPath, value);\n }\n },\n {\n walkGetters: false,\n },\n );\n // console.log({result})\n return result;\n};","//#region imports\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { cloneObj } from '../helpers/clone-obj';\n\n//#endregion\n\nexport class TaonBaseClass<CloneT extends TaonBaseClass = any> {\n //#region class initialization hook\n /**\n * class initialization hook\n * taon after class instance creation\n */\n async _(): Promise<void> {}\n //#endregion\n\n //#region clone\n /**\n *\n * @param overrideObjOrFn if object is provided it will override values in cloned object,\n * if function is provided it will be called with old cloned values and should return\n * object with values to override\n * @returns cloned instance of the class\n */\n public clone(\n overrideObjOrFn?:\n | Partial<CloneT>\n | ((oldValues: Partial<CloneT>) => Partial<CloneT>),\n ): CloneT {\n if(___NS__isString(overrideObjOrFn)) {\n console.log(overrideObjOrFn);\n throw new Error('String is not supported as .clone() method argument');\n }\n const classFn = ClassHelpers__NS__getClassFnFromObject(this);\n if (___NS__isFunction(overrideObjOrFn)) {\n // console.log('clone with fn');\n const oldValues = (___NS__cloneDeep(this) || {}) as any as Partial<CloneT>;\n return cloneObj<CloneT>(overrideObjOrFn(oldValues), classFn);\n }\n // console.log('clone normal');\n return cloneObj<CloneT>(overrideObjOrFn as any, classFn);\n }\n //#endregion\n}","/* */ \nimport { RelationPath } from 'taon-typeorm/browser-prod';\n\nimport { TaonBaseClass } from './base-class';\n\n/* */\n/* */\n \nexport abstract class TaonBaseEntity<\n /**\n * type for cloning\n */\n CloneT extends TaonBaseClass = any,\n> extends TaonBaseClass<CloneT> {\n /**\n * simple check if relation is ok\n */\n relation(relationName: RelationPath<CloneT>): string {\n return relationName as string;\n }\n\n /**\n * simple check if relation is ok\n */\n relations(relationNames: RelationPath<CloneT>[]): string[] {\n return relationNames as string[];\n }\n}","/* */ \n\nimport {\n Generated,\n GeneratedColumn,\n PrimaryColumn,\n PrimaryGeneratedColumn,\n VirtualColumn,\n} from '../orm';\n\nimport type { TaonBaseClass } from './base-class';\nimport { TaonBaseEntity } from './base-entity';\n\n/* */\n/* */\n \nexport abstract class TaonBaseAbstractEntity<\n CloneT extends TaonBaseClass = any,\n> extends TaonBaseEntity<CloneT> {\n/* */\n/* */\n \n id: string;\n\n/* */\n/* */\n \n version: number;\n}\n\nexport type AbstractEntityOmitKeys<ENTITY> = Omit<\n ENTITY,\n 'id' | 'version' | '_' | 'clone'\n>;","import { isPlatformServer, isPlatformBrowser } from '@angular/common'; // @browser\nimport { Injectable } from '@angular/core'; // @browser\nimport { inject, PLATFORM_ID } from '@angular/core'; // @browser\n\nimport {\n CURRENT_HOST_BACKEND_PORT,\n CURRENT_HOST_URL,\n TAON_CONTEXT,\n} from '../constants';\nimport { TaonContext } from '../create-context';\nimport { inject as taonInject } from '../inject';\n\n/**\n * TODO prevent calling methods when not initialized\n * with init(ctx)\n */\n//#region @browser\n@Injectable()\n//#endregion\nexport abstract class TaonBaseAngularService {\n //#region @browser\n protected readonly platformId = inject(PLATFORM_ID);\n\n protected readonly currentContext: TaonContext = inject(TAON_CONTEXT);\n\n /**\n * @deprecated\n * current context host backend port (for localhost backend)\n */\n protected readonly CURRENT_HOST_BACKEND_PORT: number | undefined;\n\n /**\n * @deprecated\n * current context host URL (for localhost backend)\n */\n protected readonly CURRENT_HOST_URL: string | undefined;\n\n //#endregion\n constructor() {\n //#region @browser\n this.CURRENT_HOST_BACKEND_PORT = inject(CURRENT_HOST_BACKEND_PORT, {\n optional: true,\n });\n this.CURRENT_HOST_URL = inject(CURRENT_HOST_URL, {\n optional: true,\n });\n // #endregion\n }\n\n /**\n * Returns true if the application is running in SSR (server-side rendering) mode only.\n */\n public get isSsrPlatform(): boolean {\n //#region @browser\n return isPlatformServer(this.platformId);\n //#endregion\n return false;\n }\n\n /**\n * Returns true if the application is running in browser-only mode.\n */\n public get isBrowserPlatform(): boolean {\n //#region @browser\n return isPlatformBrowser(this.platformId);\n //#endregion\n return false;\n }\n\n /**\n * @deprecated\n * Returns the host URL for the backend service\n * that is running on localhost (normal NodeJS/ExpressJS mode).\n */\n get host(): string {\n //#region @browser\n if (this.CURRENT_HOST_URL) {\n return this.CURRENT_HOST_URL;\n }\n return `http://localhost:${this.CURRENT_HOST_BACKEND_PORT}`;\n //#endregion\n return void 0;\n }\n\n injectController<T>(\n ctor: new (...args: any[]) => T,\n /**\n * optional override context\n */\n overrideCurrentContext?: TaonContext,\n ): T {\n return taonInject(() => {\n let currentContext: TaonContext;\n //#region @browser\n currentContext = overrideCurrentContext\n ? overrideCurrentContext\n : this.currentContext;\n //#endregion\n if (!currentContext || !currentContext.__refSync.inited) {\n throw new Error(\n `\n Context not available. Make sure to .initialize()\n the context before injecting controllers.\n\n `,\n );\n }\n return currentContext ? currentContext.getClass(ctor) : void 0;\n }) as T;\n }\n}","import 'reflect-metadata';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Provider decorator\n */\nexport function TaonMiddleware<T = any>(\n options?: TaonMiddlewareOptions<T>,\n) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonMiddlewareOptions<T = any> extends DecoratorAbstractOpt {\n // middleware is a singleton for each context\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { EndpointContext } from '../endpoint-context';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { TaonBaseCustomRepository } from './base-custom-repository';\nimport type { TaonBaseRepository } from './base-repository';\n//#endregion\n\nexport class TaonBaseInjector {\n //#region proxy dummy function\n /**\n * for proxy purposes\n */\n getOriginalPrototype: () => any;\n /**\n * for proxy purposes\n */\n getOriginalConstructor: () => any;\n //#endregion\n\n //#region class initialization hook\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _(): Promise<void> {}\n //#endregion\n\n //#region context\n /**\n * @deprecated use ctx instead\n * Current endpoint context\n */\n get __endpoint_context__(): EndpointContext {\n return this[Symbols__NS__ctxInClassOrClassObj] as EndpointContext;\n }\n\n /**\n * get current endpoint context\n */\n get ctx(): EndpointContext {\n return this.__endpoint_context__;\n }\n //#endregion\n\n //#region inject\n\n //#region inject / repo for entity\n /**\n * inject crud repo for entity\n */\n injectRepo<T>(\n entityForCrud: new (...args: any[]) => T,\n ): TaonBaseRepository<T> {\n const repoProxy = this.__inject(void 0, {\n localInstance: true,\n resolveClassFromContext: 'TaonBaseRepository',\n locaInstanceConstructorArgs: [() => entityForCrud],\n });\n return repoProxy as any;\n }\n //#endregion\n\n //#region inject / custom repository\n injectCustomRepository<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: true,\n locaInstanceConstructorArgs: [\n () => {\n const classToProcess =\n this.ctx.allClassesInstances[\n ClassHelpers__NS__getName(cutomRepositoryClass)\n ];\n\n return classToProcess.entityClassResolveFn();\n },\n ],\n });\n return repoProxy;\n }\n //#endregion\n\n //#region inject / custom repository\n injectKvRepository<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: false,\n });\n return repoProxy;\n }\n //#endregion\n\n //#region inject / custom repo\n /**\n * aliast to this.injectRepository()\n */\n injectCustomRepo<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.injectCustomRepository<T>(cutomRepositoryClass);\n return repoProxy;\n }\n //#endregion\n\n //#region inject / controller\n /**\n * example usage:\n * ...\n * exampleController = this.injectController(ExampleController);\n * ...\n */\n injectController<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / ctrl\n /**\n * example usage:\n * ...\n * exampleSubscriber = this.injectSubscriber(ExampleSubscriber)\n * ...\n */\n injectSubscriber<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / ctrl\n /**\n * aliast to .injectController()\n */\n injectCtrl<T>(ctor: new (...args: any[]) => T): T {\n return this.injectController<T>(ctor);\n }\n //#endregion\n\n //#region inject / global provider\n /**\n * inject middleware for context\n */\n injectMiddleware<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / context provider\n /**\n * inject provider for context\n */\n injectProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / __ inject\n /**\n * Inject: Controllers, Providers, Repositories, Services, etc.\n * TODO addd nest js injecting\n */\n private __inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n /**\n * (sql db repositories are ONLY/ALWAYS local instances)\n * If true, then local instance will be created\n * controllers, providers can be local or global\n */\n localInstance: boolean;\n /**\n * Name of class that should be resolved from context\n * (in case ctor === undefined)\n */\n resolveClassFromContext?: string;\n /**\n * Args passed to constructor of TaonBaseRepository\n * (for now just first arg is relevant)\n */\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n\n const contextClassInstance = this;\n return new Proxy(\n {},\n {\n get: (__, propName) => {\n const contextFromClass: EndpointContext =\n ctor && ctor[Symbols__NS__ctxInClassOrClassObj];\n\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n if (!instance) {\n throw new Error(\n `Not able to inject \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers__NS__getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories or middlewares)\n\n `,\n );\n }\n\n const result =\n typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n\n // console.log(`Accessing injected \"${propName?.toString()}\" from \"${ClassHelpers__NS__getName(ctor) || ctor.name}\"`,result)\n return result;\n }\n //#region @browser\n // return inject(ctor)[propName];\n //#endregion\n },\n set: (__, propName, value) => {\n const contextFromClass = ctor && ctor[Symbols__NS__ctxInClassOrClassObj];\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n if (!instance) {\n const classNameNotResolved =\n ClassHelpers__NS__getName(ctor) || ctor.name;\n throw new Error(\n `Not able to inject \"${classNameNotResolved}\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers__NS__getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories or middlewares)\n\n `,\n );\n }\n instance[propName] = value;\n }\n return true;\n },\n },\n ) as T;\n }\n //#endregion\n\n //#endregion\n}","//#region imports\nimport type { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport {\n AxiosTaonHttpHandler,\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseInjector } from './base-injector';\n//#endregion\n\n/**\n * TODO\n * - global provider available in all contexts\n * - provider available in own context\n */\nexport abstract class TaonBaseMiddleware extends TaonBaseInjector {}\n\nexport interface TaonAdditionalMiddlewareMethodInfo {\n methodName: string;\n expressPath: string;\n httpRequestType: CoreModels__NS__HttpMethod;\n}\n\nexport interface TaonBaseMiddleware {\n /**\n * Global interceptor for whole context\n * backend request\n */\n interceptServer({\n req,\n res,\n next,\n }: TaonServerMiddlewareInterceptOptions): Promise<void> | void;\n\n /**\n * Global interceptor for whole context\n * client requests\n */\n interceptClient({\n req,\n next,\n }: TaonClientMiddlewareInterceptOptions): Observable<AxiosResponse<any>>;\n\n /**\n * Specyfic controller method interceptor\n */\n interceptServerMethod(\n { req, res, next }: TaonServerMiddlewareInterceptOptions,\n {\n methodName,\n expressPath,\n httpRequestType,\n }: TaonAdditionalMiddlewareMethodInfo,\n ): Promise<void> | void;\n\n /**\n * Controller method frontned interceptor\n * TODO not needed ?\n */\n interceptClientMethod(\n { req, next }: TaonClientMiddlewareInterceptOptions,\n {\n methodName,\n expressPath,\n httpRequestType,\n }: TaonAdditionalMiddlewareMethodInfo,\n ): Observable<AxiosResponse<any>>;\n}","//#region imports\n/* */ \n\nimport type { RequestHandler } from 'express';\nimport * as multer from 'multer';\nimport {\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { crossPlatformPath, fse, path } from 'tnp-core/browser-prod';\n\nimport { TaonMiddleware } from '../decorators/classes/middleware-decorator';\n\nimport {\n TaonBaseMiddleware,\n TaonAdditionalMiddlewareMethodInfo,\n} from './base-middleware';\n//#endregion\n\n/**\n * Configurable file upload middleware (multer based)\n */\n@TaonMiddleware({\n className: 'TaonBaseFileUploadMiddleware',\n})\nexport class TaonBaseFileUploadMiddleware extends TaonBaseMiddleware {\n async interceptServerMethod(\n { req, res, next }: TaonServerMiddlewareInterceptOptions,\n { methodName, expressPath }: TaonAdditionalMiddlewareMethodInfo,\n ): Promise<void> {\n return this.middleware()(req, res, next);\n }\n\n //#region upload Dir\n uploadDir(): string {\n return crossPlatformPath([this.ctx.cwd, 'uploaded-files']);\n }\n //#endregion\n\n //#region storage\n storage(): multer.StorageEngine {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region upload\n upload(): multer.Multer {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region middleware\n middleware(): RequestHandler {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Repository decorator\n */\nexport function TaonRepository(options: TaonRepositoryOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n };\n}\n\nexport class TaonRepositoryOptions<T = any> extends DecoratorAbstractOpt {}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\n\nimport { TaonBaseInjector } from './base-injector';\n//#endregion\n\n@TaonRepository({ className: 'TaonBaseCustomRepository' })\nexport abstract class TaonBaseCustomRepository extends TaonBaseInjector {}","//#region imports\nimport { MySqlQuerySource } from 'taon-type-sql/browser-prod';\nimport {\n type DataSource,\n type DeepPartial,\n type DeleteResult,\n type FindManyOptions,\n type FindOneOptions,\n type FindOptionsWhere,\n type InsertResult,\n // ObjectID // TODO why is this not in taon-typeorm,\n type RemoveOptions,\n type Repository,\n type SaveOptions,\n type UpdateResult,\n} from 'taon-typeorm/browser-prod';\nimport type { QueryDeepPartialEntity } from 'taon-typeorm/browser-prod';\nimport type { UpsertOptions } from 'taon-typeorm/browser-prod';\nimport type {\n DataSource as DataSourceType,\n QueryRunner,\n SelectQueryBuilder,\n} from 'taon-typeorm/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\n\nimport { TaonBaseCustomRepository } from './base-custom-repository';\n\n//#endregion\n\nconst INDEX_KEYS_NO_FOR_UPDATE = ['id'];\n\n@TaonRepository({ className: 'TaonBaseRepository' })\nexport abstract class TaonBaseRepository<\n Entity extends { id?: any },\n> extends TaonBaseCustomRepository {\n private REPOS_CACHE_KEY = Symbol('repository cache inside instance');\n //#region dummy fields\n // static ids:number = 0;\n // id:number = TaonBaseRepository.ids++;\n //#endregion\n\n //#region constructor & resolve entity\n abstract entityClassResolveFn: () => any;\n\n constructor(\n // Injected through TaonBaseCrudController\n __entityClassResolveFn: () => any,\n ) {\n super();\n // @ts-ignore\n this.entityClassResolveFn = __entityClassResolveFn;\n }\n //#endregion\n\n //#region db query\n private __dbQuery: MySqlQuerySource;\n\n public get dbQuery(): MySqlQuerySource {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region connection\n public get connection(): DataSourceType {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region repository\n protected get repository(): Repository<Entity> {\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 return (void 0);\n }\n\n /**\n * target for repository\n */\n public get target(): Function {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to repository\n */\n protected get repo(): Repository<Entity> {\n/* */\n/* */\n return (void 0);\n }\n\n public get repositoryExists(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region crud operations / typeorm / has id\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.repo.hasId(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / get id\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.repo.getId(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / create & bulk create\n /**\n Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n async save(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to save\n * -> it will actuall create new entity in db\n * in oposite to typeorm create method\n */\n /**\n * Creates a new entity instance.\n */\n create(): Entity;\n\n /**\n * Creates new entities and copies all entity properties from given objects into their new entities.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLikeArray: DeepPartial<Entity>[]): Entity[];\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 are present in entity schema.\n */\n create(entityLike: DeepPartial<Entity>): Entity;\n\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n create(\n plainEntityLikeOrPlainEntityLikes?:\n | DeepPartial<Entity>\n | DeepPartial<Entity>[],\n ): Entity | Entity[] {\n return this.repo.create(plainEntityLikeOrPlainEntityLikes as any);\n }\n\n async bulkSave(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated use bulkSave instead\n */\n async bulkCreate(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n return this.bulkSave(items, options);\n }\n\n //#region old typeorm version\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n // save<T extends DeepPartial<Entity>>(\n // entities: T[],\n // options: SaveOptions & {\n // reload: false;\n // },\n // ): Promise<T[]>;\n // /**\n // * Saves all given entities in the database.\n // * If entities do not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entities: T[],\n // options?: SaveOptions,\n // ): Promise<(T & Entity)[]>;\n // /**\n // * Saves a given entity in the database.\n // * If entity does not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entity: T,\n // options: SaveOptions & {\n // reload: false;\n // },\n // ): Promise<T>;\n // /**\n // * Saves a given entity in the database.\n // * If entity does not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entity: T,\n // options?: SaveOptions,\n // ): Promise<T & Entity> {\n // return this.repo.save(entity, options);\n // }\n //#endregion\n\n //#endregion\n\n //#region crud operations / typeorm / merge\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(mergeIntoEntity: Entity, ...entityLikes: Entity[]): Entity {\n return this.repo.merge(mergeIntoEntity, ...entityLikes);\n }\n //#endregion\n\n //#region crud operations / typeorm / preload\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 preload(entityLike: Entity): Promise<Entity | undefined> {\n return this.repo.preload(entityLike);\n }\n //#endregion\n\n //#region crud operations / typeorm / remove (delete) & bulk remove (delete)\n\n /**\n * Removes a given entities from the database.\n */\n async remove(idOrEntity: number | string | Entity): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to remove\n */\n async delete(idOrEntity: number | string | Partial<Entity>): Promise<Entity> {\n return this.remove(idOrEntity as any);\n }\n\n /**\n * alias to removeById\n */\n async deleteById(id: number | string): Promise<Entity> {\n return this.remove(id);\n }\n\n async bulkRemove(\n idsOrEntities: (number | string | Entity)[],\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkDelete(ids: (number | string | Entity)[]): Promise<Entity[]> {\n return this.bulkRemove(ids);\n }\n\n //#region old typeorm version\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 // delete(\n // criteria:\n // | string\n // | string[]\n // | number\n // | number[]\n // | Date\n // | Date[]\n // | ObjectID\n // | ObjectID[]\n // | FindOptionsWhere<Entity>,\n // ): Promise<DeleteResult> {\n // return this.repo.delete(criteria);\n // }\n\n // /**\n // * Removes a given entities from the database.\n // */\n // remove(entities: Entity[], options?: RemoveOptions): Promise<Entity[]>;\n // /**\n // * Removes a given entity from the database.\n // */\n // remove(entity: Entity, options?: RemoveOptions): Promise<Entity> {\n // return this.repo.remove(entity, options);\n // }\n\n //#endregion\n //#endregion\n\n //#region crud operations / typeorm / soft remove\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.softRemove(entity, options);\n }\n //#endregion\n\n //#region crud operations / typeorm / recover\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.recover(entity, options);\n }\n //#endregion\n\n //#region crud operations / typeorm / insert\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 insert(\n entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n // debugger;\n return this.repo.insert(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / update & build update\n async update(item: Entity) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private allowedTypesToUpdate = ['simple-json', 'simple-array', 'json'];\n\n async updateById<ENTITY = Entity>(\n id: number | string,\n item: Entity,\n ): Promise<ENTITY> {\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 return (void 0);\n }\n\n async bulkUpdate(items: Entity[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region tpeorm update version\n // this version suck and will not return update entity\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 // update(\n // criteria:\n // | string\n // | string[]\n // | number\n // | number[]\n // | Date\n // | Date[]\n // | ObjectID\n // | ObjectID[]\n // | FindOptionsWhere<Entity>,\n // partialEntity: QueryDeepPartialEntity<Entity>,\n // ): Promise<UpdateResult> {\n // return this.repo.update(criteria, partialEntity);\n // }\n //#endregion\n\n //#endregion\n\n //#region crud operations / typeorm / upsert\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.repo.upsert(entityOrEntities, conflictPathsOrOptions);\n }\n //#endregion\n\n //#region crud operations / typeorm / soft delete\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 softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n // | ObjectID\n // | ObjectID[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.softDelete(criteria);\n }\n //#endregion\n\n //#region crud operations / typeorm / restore\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 restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n // | ObjectID\n // | ObjectID[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.restore(criteria);\n }\n //#endregion\n\n //#region crud operations / typeorm / count\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.repo.count(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / count by\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.repo.countBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find\n /**\n * Finds entities that match given find options.\n */\n find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.repo.find(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find by\n /**\n * Finds entities that match given find options.\n */\n findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.repo.findBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find and count\n // async findAndCount(options: { take: number; skip: number }) {\n // const { take, skip } = options;\n // const [result, total] = await this.repo.findAndCount({\n // // where: { name: Like('%' + keyword + '%') },\n // // order: { name: \"DESC\" },\n // take: take,\n // skip: skip,\n // });\n // return { result, total };\n\n // }\n //\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(options?: FindManyOptions<Entity>): Promise<[Entity[], number]> {\n return this.repo.findAndCount(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find and count by\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.repo.findAndCountBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find by ids\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[]): Promise<Entity[]> {\n return this.repo.findByIds(ids);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.repo.findOne(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one by\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.repo.findOneBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one or fail\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n findOneById(\n id: number | string | Date,\n // | ObjectID\n ): Promise<Entity | null> {\n return this.repo.findOneById(id);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one or fail\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.repo.findOneOrFail(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one by or fail\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.repo.findOneByOrFail(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / query\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 query(query: string, parameters?: any[]): Promise<any> {\n return this.repo.query(query, parameters);\n }\n //#endregion\n\n //#region crud operations / typeorm / query\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 createQueryBuilder(\n alias?: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n return this.repo.createQueryBuilder(alias, queryRunner);\n }\n //#endregion\n\n //#region crud operations / typeorm / clear\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 clear(): Promise<void> {\n return this.repo.clear();\n }\n //#endregion\n\n //#region crud operations / typeorm / increment\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.increment(conditions, propertyPath, value);\n }\n //#endregion\n\n //#region crud operations / typeorm / decrement\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.decrement(conditions, propertyPath, value);\n }\n //#endregion\n\n //#region crud operations / get all\n /**\n * @deprecated use findAndCount instead\n */\n async getAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region crud operations / get by id\n async getBy(id: number | string): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { createContext } from '../create-context';\nimport { TaonGlobalStateContext } from '../global-state/taon-global-state/taon-global-state.abstract.context';\nimport { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';\nimport { TaonBaseRepository } from './base-repository';\n\nconst TaonBaseContext = createContext(() => ({\n contextName: 'TaonBaseContext',\n abstract: true,\n contexts: {\n // TaonGlobalStateContext,\n },\n middlewares: {\n TaonBaseFileUploadMiddleware,\n },\n repositories: {\n // @ts-ignore\n TaonBaseRepository,\n },\n}));\n\nexport { TaonBaseContext };","import type { TaonControllerOptions } from '../../config/controller-options';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\n/**\n * Controller decorator\n */\nexport function TaonController<ControllerClass = any>(\n options?: TaonControllerOptions<ControllerClass>,\n) {\n return function (constructor: Function) {\n ClassHelpers__NS__setName(constructor, options?.className);\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n const cfg = ClassHelpers__NS__ensureClassConfig(constructor);\n options = options || ({} as any);\n cfg.className = options.className || constructor.name;\n cfg.path = options.path || '';\n cfg.realtime = options.realtime;\n cfg.middlewares = options.middlewares;\n };\n}","import { ResponseTypeAxios } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseMiddleware } from '../../base-classes/base-middleware';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\nconst metaReq = (\n method: CoreModels__NS__HttpMethod,\n path: string,\n target: Function,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n pathOrOptions: string | TaonHttpDecoratorOptions,\n pathIsGlobal: boolean,\n) => {\n const methodConfig = ClassHelpers__NS__ensureMethodConfig(target, propertyKey);\n\n let options: TaonHttpDecoratorOptions;\n if (typeof pathOrOptions === 'object') {\n options = pathOrOptions;\n pathOrOptions = options.path as any;\n pathIsGlobal = !!options.pathIsGlobal;\n path = options.path;\n } else {\n options = { pathOrOptions, pathIsGlobal } as any;\n }\n\n const {\n overrideContentType,\n overrideResponseType,\n overrideExpressSendAsHtml,\n middlewares,\n } = options;\n\n methodConfig.methodName = propertyKey;\n methodConfig.middlewares = middlewares;\n methodConfig.type = method;\n if (!path) {\n let paramsPathConcatedPath = '';\n for (const key in methodConfig.parameters) {\n if (methodConfig.parameters.hasOwnProperty(key)) {\n const element = methodConfig.parameters[key];\n if (\n element.paramType === 'Path' &&\n ___NS__isString(element.paramName) &&\n element.paramName.trim().length > 0\n ) {\n paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;\n }\n }\n }\n methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`;\n } else {\n methodConfig.path = path;\n }\n\n methodConfig.descriptor = descriptor;\n methodConfig.global = pathIsGlobal;\n methodConfig.contentType = overrideContentType;\n methodConfig.responseType = overrideResponseType;\n methodConfig.overrideExpressSendAsHtml = overrideExpressSendAsHtml;\n};\n\nexport type TaonMiddlewareInheritanceObj = {\n [parentMiddlewaresName: string]: typeof TaonBaseMiddleware;\n};\n\nexport type TaonMiddlewareFunction = (options: {\n /**\n * middlewares inherited from parent class\n */\n parentMiddlewares: TaonMiddlewareInheritanceObj;\n /**\n * Get real class name - needed when code is minified\n */\n className: (middlewareClass: Function) => string;\n}) => TaonMiddlewareInheritanceObj;\n\nexport interface TaonHttpDecoratorOptions {\n /**\n * @deprecated don't use in production - keep stuff encapsulated\n * normally path is generated from method name and its params\n */\n path?: string;\n /**\n * If true, the path will be global\n *\n * ! BE CAREFUL ! global path IS NOT GLOBAL inside dockerized app\n * (/api/contextName is automatically added to global path in docker)\n *\n * @deprecated don't use in production - keep stuff encapsulated\n */\n pathIsGlobal?: boolean;\n overrideContentType?: CoreModels__NS__ContentType;\n overrideResponseType?: ResponseTypeAxios;\n /**\n * Express will send response as HTML string with proper headers\n */\n overrideExpressSendAsHtml?: boolean;\n middlewares?: TaonMiddlewareFunction;\n}\n\nexport function GET(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'get',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\n/**\n * Method for sending html website from text\n * Example\n *\n * ```ts\n * ...\n * // in your taon controller\n * ..Taon.Http.HTML()\n * sendHtmlDummyWebsite(): Taon__NS__ResponseHtml {\n * return `\n <html>\n <head>\n <title>Dummy website</title>\n </head>\n <body>\n <h1>This is dummy website</h1>\n <p>Served as HTML string from Taon controller method</p>\n </body>\n </html>\n * `; *\n * }\n * ...\n * ```\n */\nexport function HTML(\n pathOrOptions?: Pick<TaonHttpDecoratorOptions, 'path' | 'pathIsGlobal'>,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n const opt = pathOrOptions as TaonHttpDecoratorOptions;\n opt.overrideExpressSendAsHtml = true;\n metaReq(\n 'get',\n opt as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n opt.pathIsGlobal,\n );\n };\n}\n\nexport function HEAD(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'head',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function POST(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'post',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PUT(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'put',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PATCH(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'patch',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function DELETE(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'delete',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\nfunction metaParam(\n param: CoreModels__NS__ParamType,\n name: string,\n expire: number,\n defaultValue = undefined,\n target: Function,\n propertyKey: string | symbol,\n parameterIndex: number,\n) {\n const methodCfg = ClassHelpers__NS__ensureMethodConfig(target, propertyKey);\n const nameKey = name ? name : param;\n // const key = name || `${param}_${parameterIndex}`;\n methodCfg.parameters[nameKey] = {\n index: parameterIndex,\n paramName: name,\n paramType: param,\n defaultType: defaultValue,\n expireInSeconds: expire,\n };\n\n // console.log('params updated', methodConfig);\n}\n\n/**\n * @deprecated use Taon.Http.Param.Path (is more safe and cleaner)\n */\nexport function Path(name: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Path', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\nexport function Query(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Query',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Cookie',\n name,\n expireInSecond,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Header(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Header',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Body(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Body', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}","/* */ \nimport {\n RestErrorResponseWrapper,\n RestResponseWrapper,\n HttpResponseError,\n Ng2RestAxiosRequestConfig,\n} from 'ng2-rest/browser-prod';\n\nimport { crossPlatformPath, fse, path, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__drawLine, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/browser-prod';\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { POST } from '../decorators/http/http-methods-decorators';\nimport { Body, Path, Query } from '../decorators/http/http-params-decorators';\nimport type { EndpointContext } from '../endpoint-context';\nimport type { ContextsEndpointStorage } from '../endpoint-context-storage';\nimport type { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\n\nimport { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';\nimport { TaonBaseInjector } from './base-injector';\n\nexport interface MulterFileUploadResponse {\n ok: boolean;\n originalName: string;\n /**\n * name change to this to avoid confusion with originalname\n * (similar to originalname with added uniq part)\n */\n savedAs: string;\n size: number;\n mimetype: string;\n}\n\n@TaonController<TaonBaseController>({\n className: 'TaonBaseController',\n})\nexport class TaonBaseController<\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends TaonBaseInjector {\n /**\n * Hook that is called when taon app is inited\n * (all contexts are created and inited)\n */\n async afterAllCtxInited(options: {\n ctxStorage: ContextsEndpointStorage;\n }): Promise<void> {}\n\n //#region upload form data to server\n @POST({\n overrideContentType: 'multipart/form-data',\n middlewares: ({ parentMiddlewares }) => ({\n ...parentMiddlewares,\n TaonBaseFileUploadMiddleware,\n }),\n })\n uploadFormDataToServer(\n @Body() formData: FormData,\n @Query() queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): Models__NS__Http__NS__Response<MulterFileUploadResponse[]> {\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 return (void 0);\n }\n //#endregion\n\n //#region after file upload hook\n /**\n * Hook after file is uploaded\n * through `uploadFormDataToServer` or `uploadLocalFileToServer`\n */\n protected afterFileUploadAction(\n file?: MulterFileUploadResponse,\n queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): void | Promise<void> {\n // empty\n }\n\n //#region upload local file to server\n async uploadLocalFileToServer(\n absFilePath: string,\n options?: Pick<Ng2RestAxiosRequestConfig, 'onUploadProgress'>,\n queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): Promise<MulterFileUploadResponse[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n // async check() {\n // await this._waitForProperStatusChange({\n // request: () => this.uploadFormDataToServer(void 0, void 0).request(),\n // statusCheck: resp => resp.body.json[0].ok,\n // });\n // }\n\n /**\n * Easy way to wait for status change with http (1s default) pooling.\n *\n * example (in sub class):\n * ```ts\n async check() {\n await this.waitForProperStatusChange({\n request: () => this.uploadFormDataToServer(void 0, void 0).request(),\n statusCheck: resp => resp.body.json[0].ok,\n });\n }\n * ```\n */\n public async _waitForProperStatusChange<T>(options: {\n actionName: string;\n /**\n * Request for pooling\n */\n request: (opt?: {\n /**\n * optional index number to identify request in logs\n * (starts from 0 and increments by 1 on each try)\n */\n reqIndexNum?: number;\n httpErrorsCount?: number;\n }) => ReturnType<Models__NS__Http__NS__Response<T>['request']>;\n poolingInterval?: number;\n /**\n * default infinite tries\n */\n maxTries?: number;\n /**\n * default infiniti allowed http errors\n */\n allowedHttpErrors?: number;\n /**\n * condition to be met\n */\n statusCheck?: (\n response: Awaited<ReturnType<typeof options.request>>,\n ) => boolean;\n /**\n * if return true.. loop will continue\n * if false .. will exit the loop\n */\n loopRequestsOnBackendError?: (opt: {\n unknownError: Error;\n unknownHttpError: HttpResponseError<any>;\n taonError: HttpResponseError<RestErrorResponseWrapper>;\n reqIndexNum?: number;\n httpErrorsCount?: number;\n }) => boolean | Promise<boolean>;\n }): Promise<void> {\n const poolingInterval = options.poolingInterval || 1000;\n const taonRequest = options.request;\n let maxTries = options.maxTries || Number.POSITIVE_INFINITY;\n let i = 0;\n let httpErrorsCount = 0;\n while (true) {\n await UtilsTerminal__NS__waitMilliseconds(poolingInterval);\n try {\n const resp = await taonRequest({\n reqIndexNum: i,\n httpErrorsCount,\n });\n if (options.statusCheck && options.statusCheck(resp)) {\n return;\n }\n } catch (error: Error | HttpResponseError | any) {\n httpErrorsCount++;\n if (options.loopRequestsOnBackendError) {\n const isProperTaonError =\n error instanceof HttpResponseError &&\n error.body.json[CoreModels__NS__TaonHttpErrorCustomProp];\n const isHttpError =\n error instanceof HttpResponseError && !isProperTaonError;\n const isUnknownError = !(error instanceof HttpResponseError);\n\n const resBool = await options.loopRequestsOnBackendError({\n taonError: isProperTaonError ? error : void 0,\n unknownHttpError: isHttpError ? error : void 0,\n unknownError: isUnknownError ? (error as Error) : void 0,\n reqIndexNum: i,\n httpErrorsCount,\n });\n if (resBool) {\n i++;\n continue;\n } else {\n return;\n }\n }\n if (\n httpErrorsCount >\n (options.allowedHttpErrors || Number.POSITIVE_INFINITY)\n ) {\n throw new Error(\n `Too many http errors (${httpErrorsCount}) for \"${options.actionName}\".`,\n );\n }\n }\n\n if (i++ > maxTries) {\n throw new Error(\n `Timeout waiting for \"${options.actionName}\" to be finished. Waited for ${maxTries} seconds`,\n );\n }\n }\n }\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport {\n GET,\n PUT,\n DELETE,\n POST,\n HEAD,\n PATCH,\n} from '../decorators/http/http-methods-decorators';\nimport { Query, Path, Body } from '../decorators/http/http-params-decorators';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions } from '../validators';\n\nimport { TaonBaseController } from './base-controller';\nimport { TaonBaseRepository } from './base-repository';\n//#endregion\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonController({ className: 'TaonBaseCrudController' })\nexport abstract class TaonBaseCrudController<\n Entity,\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends TaonBaseController<UPLOAD_FILE_QUERY_PARAMS> {\n //#region fields\n protected db: TaonBaseRepository<Entity>;\n\n /**\n * Please provide entity as class property entityClassFn:\n * @returns class function\n *\n */\n abstract entityClassResolveFn: () => any;\n //#endregion\n\n //#region init\n async _(): Promise<void> {\n if (!___NS__isFunction(this.entityClassResolveFn)) {\n Helpers__NS__warn(\n `Skipping initing CRUD controller ${ClassHelpers__NS__getName(\n this,\n )} because entityClassResolveFn is not provided.`,\n );\n return;\n }\n\n let entityClassFn = this.entityClassResolveFn();\n this.db = this.injectRepo(entityClassFn);\n\n if (entityClassFn) {\n const configEntity = Reflect.getMetadata(\n Symbols__NS__metadata.options.entity,\n ClassHelpers__NS__getClassFnFromObject(this),\n ) as TaonEntityOptions;\n if (configEntity?.createTable === false) {\n Helpers__NS__warn(\n `Table for entity ${ClassHelpers__NS__getName(\n entityClassFn,\n )} will not be created. Crud will not work properly.`,\n );\n }\n } else {\n Helpers__NS__error(`Entity class not provided for controller ${ClassHelpers__NS__getName(\n this,\n )}.\n\n Please provide entity as class property entityClassFn:\n\n class ${ClassHelpers__NS__getName(this)} extends TaonBaseCrudController<Entity> {\n // ...\n entityClassResolveFn = ()=> MyEntityClass;\n // ...\n }\n\n `);\n }\n await super._();\n }\n //#endregion\n\n //#region bufferd changes\n @GET()\n bufforedChanges(\n @Query(`id`) id: number | string,\n @Query(`property`) property: string,\n @Query('alreadyLength') alreadyLength?: number,\n ): Models__NS__Http__NS__Response<string | any[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region pagintation\n @GET()\n pagination(\n @Query('pageNumber') pageNumber: number = 1,\n @Query('pageSize') pageSize: number = 10,\n @Query('search') search: string = '',\n ): Models__NS__Http__NS__Response<Entity[]> {\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 return (void 0);\n }\n //#endregion\n\n //#region get all\n @GET()\n getAll(): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get by id\n @GET()\n getBy(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update by id\n @PUT()\n updateById(\n @Query(`id`) id: number | string,\n @Body() item: Entity,\n ): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region patch by id\n @PATCH()\n patchById(\n @Query(`id`) id: number | string,\n @Body() item: Entity,\n ): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk update\n @PUT()\n bulkUpdate(@Body() items: Entity[]): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region delete by id\n @DELETE()\n deleteById(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk delete\n @DELETE()\n bulkDelete(\n @Query(`ids`) ids: (number | string)[],\n ): Models__NS__Http__NS__Response<(number | string | Entity)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk delete\n @DELETE()\n clearTable(): Models__NS__Http__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region create\n @POST()\n save(@Body() item: Entity): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk create\n @POST()\n bulkCreate(@Body() items: Entity): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { path, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n/* */ \n/* */ \n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\n\nimport { TaonBaseController } from './base-controller';\nimport { TaonBaseCustomRepository } from './base-custom-repository';\nimport { TaonBaseRepository } from './base-repository';\n//#endregion\n\ntype KvLowDbShape<KV extends Record<string, any>> = KV & {\n __kvMeta?: {\n expirations?: Record<string, number>;\n };\n};\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonRepository({ className: 'TaonBaseKvRepository' })\nexport abstract class TaonBaseKvRepository<\n KV extends Record<string, any> = Record<string, any>,\n> extends TaonBaseCustomRepository {\n //#region lowdb for development\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 //#endregion\n\n //#region private helpers\n private normalizeKey(key: keyof KV): string {\n return `${String(key)}`;\n }\n\n private expirationPath(key: keyof KV): string {\n return `__kvMeta.expirations.${this.normalizeKey(key)}`;\n }\n\n private async getExpirationTimestamp<K extends keyof KV>(\n key: K,\n ): Promise<number | undefined> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async isExpired<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async cleanupIfExpired<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n async set<K extends keyof KV>(key: K, value: KV[K]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async get<K extends keyof KV>(key: K): Promise<KV[K] | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async delete<K extends keyof KV>(key: K): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async has<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async expire<K extends keyof KV>(key: K, ttlSeconds: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async ttl<K extends keyof KV>(key: K): Promise<number | undefined> {\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 return (void 0);\n }\n}","import { MigrationInterface, QueryRunner } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\n\nimport { TaonBaseInjector } from './base-injector';\n\nexport class TaonBaseMigration extends TaonBaseInjector implements MigrationInterface {\n /**\n * by default is READY to run\n */\n public isReadyToRun(): boolean {\n return true;\n }\n\n getDescription(): string {\n return ___NS__startCase(ClassHelpers__NS__getName(this));\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n console.log(`[TaonBaseMigration] Running migration UP \"${ClassHelpers__NS__getName(this)}\"`);\n }\n async down(queryRunner: QueryRunner): Promise<any> {\n console.log(`[TaonBaseMigration] Running migration DOWN \"${ClassHelpers__NS__getName(this)}\"`);\n }\n}","import { TaonBaseInjector } from './base-injector';\n\n/**\n * TODO\n * - global provider available in all contexts\n * - provider available in own context\n */\nexport class TaonBaseProvider extends TaonBaseInjector {}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Subscriber decorator\n */\nexport function TaonSubscriber<T=any>(options: TaonSubscriberOptions<T>) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.subscriber,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n } as any;\n}\n\nexport class TaonSubscriberOptions<T = any> extends DecoratorAbstractOpt {\n allowedEvents?: (keyof T)[];\n}","import {\n EntitySubscriberInterface,\n RecoverEvent,\n SoftRemoveEvent,\n InsertEvent,\n TransactionStartEvent,\n TransactionCommitEvent,\n TransactionRollbackEvent,\n RemoveEvent,\n UpdateEvent,\n} from 'taon-typeorm/browser-prod';\nimport { TaonBaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n@TaonSubscriber({\n className: 'TaonBaseSubscriberForEntity',\n})\nexport abstract class TaonBaseSubscriberForEntity<Entity = any>\n extends TaonBaseInjector\n implements EntitySubscriberInterface\n{\n abstract listenTo(): new (...args) => Entity;\n\n /**\n * Called after entity is loaded.\n */\n afterLoad(entity: any) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY LOADED: `, entity);\n }\n\n /**\n * Called before query execution.\n */\n beforeQuery(event: any) {\n // BeforeQueryEvent<any>\n this.ctx.logDb &&\n console.log(`BEFORE QUERY: `, event.query);\n }\n\n /**\n * Called after query execution.\n */\n afterQuery(event: any) {\n // AfterQueryEvent<any>\n this.ctx.logDb &&\n console.log(`AFTER QUERY: `, event.query);\n }\n\n /**\n * Called before entity insertion.\n */\n beforeInsert(event: InsertEvent<any>) {\n this.ctx.logDb &&\n console.log(`BEFORE ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called after entity insertion.\n */\n afterInsert(event: InsertEvent<any>) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called before entity update.\n */\n beforeUpdate(event: UpdateEvent<any>) {\n this.ctx.logDb &&\n console.log(`BEFORE ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called after entity update.\n */\n afterUpdate(event: UpdateEvent<any>) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called before entity removal.\n */\n beforeRemove(event: RemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterRemove(event: RemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity removal.\n */\n beforeSoftRemove(event: SoftRemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterSoftRemove(event: SoftRemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity recovery.\n */\n beforeRecover(event: RecoverEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity recovery.\n */\n afterRecover(event: RecoverEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called before transaction start.\n */\n beforeTransactionStart(event: TransactionStartEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION STARTED`);\n }\n\n /**\n * Called after transaction start.\n */\n afterTransactionStart(event: TransactionStartEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION STARTED`);\n }\n\n /**\n * Called before transaction commit.\n */\n beforeTransactionCommit(event: TransactionCommitEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION COMMITTED`);\n }\n\n /**\n * Called after transaction commit.\n */\n afterTransactionCommit(event: TransactionCommitEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION COMMITTED`);\n }\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback(event: TransactionRollbackEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION ROLLBACK`);\n }\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback(event: TransactionRollbackEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION ROLLBACK`);\n }\n}","//#region models / method config\n\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseMiddleware } from '../base-classes/base-middleware';\nimport type {\n TaonHttpDecoratorOptions,\n TaonMiddlewareFunction,\n TaonMiddlewareInheritanceObj,\n} from '../decorators/http/http-methods-decorators';\n\nimport { ParamConfig } from './param-config';\n\n/**\n * @link './decorators/http/http-methods-decorators.ts' TaonHttpDecoratorOptions\n */\nexport class MethodConfig\n implements Pick<TaonHttpDecoratorOptions, 'path' | 'middlewares'>\n{\n declare methodName: string;\n\n declare global?: boolean;\n /**\n * override default content type\n */\n declare contentType?: any;\n /**\n * override default axiso response type\n */\n declare responseType?: any;\n declare overrideExpressSendAsHtml?: boolean;\n declare path: string;\n declare descriptor: PropertyDescriptor;\n declare type: CoreModels__NS__HttpMethod;\n declare parameters: { [paramName: string]: Partial<ParamConfig> };\n /**\n * Middlewares from controller method options\n */\n declare middlewares?: TaonMiddlewareFunction;\n /**\n * Calculated middlewares object from parents controllers\n */\n declare calculatedMiddlewaresMethodObj?: TaonMiddlewareInheritanceObj;\n /**\n * Middlewares array in proper order and ready to be used in\n * express or in axios interceptors.\n */\n declare calculatedMiddlewares: (typeof TaonBaseMiddleware)[];\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<MethodConfig>): MethodConfig {\n // return cloneObj<MethodConfig>(override, MethodConfig);\n // }\n}\n//#endregion","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\n// import { cloneObj } from '../helpers/clone-obj';\n\nexport class ParamConfig {\n declare paramName: string;\n declare paramType: CoreModels__NS__ParamType;\n declare index: number;\n declare defaultType: any;\n declare expireInSeconds?: number;\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<ParamConfig>): ParamConfig {\n // return cloneObj<ParamConfig>(override, ParamConfig);\n // }\n}","import { Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n@Component({\n selector: 'formly-horizontal-wrapper',\n standalone: false,\n template: `\n <div class=\"form-group row\">\n <label\n [attr.for]=\"id\"\n class=\"col-sm-2 col-form-label\"\n *ngIf=\"to.label\">\n {{ to.label }}\n <ng-container *ngIf=\"to.required && to.hideRequiredMarker !== true\"\n >*</ng-container\n >\n </label>\n <div class=\"col-sm-10\">\n <ng-template #fieldComponent></ng-template>\n </div>\n </div>\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 5px;\n margin-bottom: 5px;\n border: 1px dotted gray;\n }\n `,\n ],\n})\nexport class FormlyHorizontalWrapper extends FieldWrapper {\n @ViewChild('fieldComponent', { read: ViewContainerRef }) // @ts-ignore\n fieldComponent: ViewContainerRef;\n}","import { Component } from '@angular/core';\nimport { FieldArrayType, FormlyFormBuilder } from '@ngx-formly/core';\n\n/*\n\nDON'T FORGET\n...\n FormlyModule.forRoot({\n types: [\n { name: 'repeat', component: RepeatTypeComponent },\n ],\n }),\n...\n\n*/\n\n@Component({\n selector: 'formly-repeat-section',\n standalone: false,\n template: `\n <div *ngIf=\"field.fieldGroup && field.fieldGroup.length === 0\">\n Press button to add new element...\n </div>\n <div\n *ngFor=\"let field of field.fieldGroup; let i = index\"\n class=\"taon-formly-array\">\n <formly-group\n [model]=\"model[i]\"\n [field]=\"field\"\n [options]=\"options\"\n [form]=\"formControl\">\n <div>\n <button\n class=\"btn btn-danger\"\n type=\"button\"\n (click)=\"remove(i)\">\n Remove\n </button>\n </div>\n </formly-group>\n </div>\n <div>\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"add()\">\n {{ labelTemplate }}\n </button>\n </div>\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 5px;\n margin-bottom: 5px;\n border: 1px solid gray;\n }\n\n formly-group {\n display: block;\n border: 1px dashed gray;\n margin-bottom: 5px;\n padding: 5px;\n }\n\n .taon-formly-array {\n padding: 5px;\n background: white;\n }\n `,\n ],\n})\nexport class RepeatTypeComponent extends FieldArrayType {\n get labelTemplate() {\n // @ts-ignore\n return this.field.fieldArray.templateOptions.label; // TODO QUICK_FIX\n }\n constructor(builder: FormlyFormBuilder) {\n // TODO QUICK_FIX\n // @ts-ignore\n super(builder);\n }\n}","import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport function findTypeForEntity(entity: Function, isArray: boolean = false) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return getRegisteredComponents().find(\n c => c.entity === entity && c.isArray === isArray,\n );\n}\n\nexport type FormlyEntityType = {\n name: string;\n component: Function;\n entity?: Function;\n isArray?: boolean;\n};\n\nexport function typeFromEntity(\n component: Function,\n entity?: Function | Function[],\n) {\n const isArray = ___NS__isArray(entity);\n if (isArray) {\n entity = ___NS__first(entity as any);\n }\n let name = ClassHelpers__NS__getName(component);\n let res = { name, component, entity, isArray };\n // console.log(res);\n return res;\n}\n\nexport function typeFromName(component: Function, name: string) {\n let res = { name, component };\n return res;\n}\n\nexport function RegisterComponentTypeForEntity(entity: Function | Function[]) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n RegisterComponentType.prototype.types.push(typeFromEntity(target, entity));\n } as any;\n}\n\nexport function RegisterComponentType(\n className: string,\n ...optionslNames: string[]\n) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n ClassHelpers__NS__setName(target, className);\n RegisterComponentType.prototype.types.push(typeFromEntity(target));\n optionslNames.forEach(name => {\n RegisterComponentType.prototype.types.push(typeFromName(target, name));\n });\n } as any;\n}\n// RegisterComponentType.prototype.types = []\n\nexport function getRegisteredComponents() {\n let registered = RegisterComponentType.prototype.types as FormlyEntityType[];\n if (!Array.isArray(registered)) {\n return [];\n }\n // console.log(registered)\n return registered;\n}","import { FormlyFieldConfig } from '@ngx-formly/core';\nimport { decodeMappingForHeaderJson } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { FormlyInputType } from './formly.models';\nimport { findTypeForEntity } from './type-from-entity';\n\nexport function getFromlyConfigFor(\n target: Function,\n options: {\n formType?: CoreModels__NS__UIFramework;\n keysPathesToInclude?: string[];\n keysPathesToExclude?: string[];\n parentModel?: string;\n relativePath?: string;\n level?: number;\n maxLevel?: number;\n } = {},\n) {\n const {\n formType = 'material',\n keysPathesToExclude = [],\n keysPathesToInclude = [],\n parentModel,\n relativePath = '',\n level = 0,\n maxLevel = 4,\n } = options;\n\n if (level === maxLevel) {\n return [];\n }\n\n const mapping = decodeMappingForHeaderJson(target);\n\n // console.log('mapping', mapping)\n const fieldNames = Object.keys(mapping);\n const checkExclude =\n ___NS__isArray(keysPathesToExclude) && keysPathesToExclude.length > 0;\n const checkInclude =\n ___NS__isArray(keysPathesToInclude) && keysPathesToInclude.length > 0;\n if (checkExclude && checkInclude) {\n throw new Error(\n `In Taon function getFromlyConfigFor(...) please use keysPathesToInclude or keysPathesToExclude, `,\n );\n }\n // if (checkInclude) {\n // console.log('check include', keysPathesToExclude)\n // }\n\n // if (checkExclude) {\n // console.log('check exclude', keysPathesToExclude)\n // }\n\n let fields: FormlyFieldConfig[] = [];\n\n //#region input to push\n function inputToPush(\n key: string,\n type: FormlyInputType,\n model: string,\n inptToPushOptions?: {\n targetChild?: Function;\n selectOptions?: any[];\n },\n ) {\n const { targetChild, selectOptions } = inptToPushOptions || {};\n // console.log(`key(${key}) type: ${type} | model: ${model} targetChild: ${targetChild && targetChild.name}`)\n let res: FormlyFieldConfig;\n if (type === 'repeat') {\n const fieldGroup = getFromlyConfigFor(targetChild, {\n formType,\n keysPathesToInclude,\n keysPathesToExclude,\n relativePath: `${relativePath}.${key}`,\n level: level + 1,\n maxLevel,\n });\n if (fieldGroup.length > 0) {\n res = {\n key,\n type,\n defaultValue: [],\n fieldArray: {\n fieldGroupClassName: 'row',\n templateOptions: {\n label: `Add new ${___NS__startCase(key)}`,\n },\n fieldGroup,\n },\n };\n }\n } else if (type === 'group') {\n const fieldGroup = getFromlyConfigFor(targetChild, {\n formType,\n keysPathesToInclude,\n keysPathesToExclude,\n parentModel: model,\n relativePath: `${relativePath}.${key}`,\n level: level + 1,\n maxLevel,\n });\n if (fieldGroup.length > 0) {\n res = {\n fieldGroupClassName: 'row',\n templateOptions: {\n label: `${___NS__startCase(key)}`,\n },\n wrappers: ['groupwrap'],\n fieldGroup,\n };\n }\n } else {\n res = {\n key,\n model,\n type,\n defaultValue: !___NS__isUndefined(target.prototype[key])\n ? target.prototype[key]\n : undefined,\n templateOptions: {\n label: ___NS__isString(model)\n ? `${model\n .split('.')\n .map(l => ___NS__startCase(l))\n .join(' / ')} / ${___NS__startCase(key)}`\n : ___NS__startCase(key),\n options: selectOptions,\n },\n };\n }\n if (res) {\n Object.keys(res).forEach(key =>\n res[key] === undefined ? delete res[key] : '',\n );\n }\n return res;\n }\n //#endregion\n\n //#region is allowed path\n function isAlowedPath(key: string) {\n let isAlowed = true;\n const matchPath = relativePath === '' ? key : `${relativePath}:${key}`;\n if (checkExclude) {\n if (keysPathesToExclude.includes(matchPath)) {\n // console.log(`Not allowed key: ${key}`)\n isAlowed = false;\n } else {\n isAlowed = true;\n }\n } else if (checkInclude) {\n if (keysPathesToInclude.includes(matchPath)) {\n // console.log(`Allowed key: ${key}`)\n isAlowed = true;\n } else {\n isAlowed = false;\n }\n }\n // console.log(`Is allowed;${matchPath} `, isAlowed)\n return isAlowed;\n }\n //#endregion\n\n const simpleResolved = [];\n\n //#region resolve simple types\n function resolveSimpleTypes() {\n for (const key in target.prototype) {\n if (\n target.prototype.hasOwnProperty(key) &&\n !___NS__isFunction(target.prototype[key])\n ) {\n if (!isAlowedPath(key)) {\n continue;\n }\n\n if (!___NS__isUndefined(mapping[key])) {\n continue;\n }\n\n const element = target.prototype[key];\n let type: FormlyInputType = 'input';\n if (___NS__isBoolean(element)) {\n type = 'switch';\n } else if (___NS__isDate(element)) {\n type = 'datepicker';\n } else if (___NS__isFunction(target['getOptionsFor'])) {\n var selectOptions = target['getOptionsFor'](key);\n if (!___NS__isUndefined(selectOptions)) {\n type = 'select';\n }\n } else if (___NS__isFunction(target.prototype?.getOptionsFor)) {\n var selectOptions = target.prototype?.getOptionsFor(key);\n if (!___NS__isUndefined(selectOptions)) {\n type = 'select';\n }\n }\n fields.push(inputToPush(key, type, parentModel, { selectOptions }));\n simpleResolved.push(key);\n }\n }\n }\n //#endregion\n\n //#region resolve complex types\n function resolveComplexTypes() {\n fieldNames\n .filter(key => !simpleResolved.includes(key))\n .forEach(key => {\n if (isAlowedPath(key) && !___NS__isUndefined(mapping[key])) {\n let className = mapping[key];\n const isArray = ___NS__isArray(className);\n className = isArray ? ___NS__first(className) : className;\n\n if (className === 'Date') {\n fields.push(inputToPush(key, 'datepicker', parentModel));\n } else {\n const targetChild = CLASS__NS__getBy(className);\n\n if (targetChild) {\n const ftype = findTypeForEntity(targetChild, isArray);\n\n if (ftype) {\n fields = fields.concat(\n inputToPush(key, ftype.name as any, key),\n );\n } else {\n if (isArray) {\n fields = fields.concat(\n inputToPush(key, 'repeat', key, { targetChild }),\n );\n } else {\n fields = fields.concat(\n inputToPush(key, 'group', key, { targetChild }),\n );\n }\n }\n }\n }\n }\n });\n }\n //#endregion\n\n function generate() {\n resolveSimpleTypes();\n // console.log('after simple', fields);\n resolveComplexTypes();\n // console.log('after complext', fields);\n }\n\n generate();\n return fields.filter(f => !!f);\n}\n\nexport type FormlyArrayTransformFn = (\n fieldsArray: FormlyFieldConfig[],\n fieldObject?: { [propKey: string]: FormlyFieldConfig },\n) => FormlyFieldConfig[];","import { Column, Generated } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport {\n Repository,\n Connection,\n Generated,\n AfterInsert,\n AfterLoad,\n AfterRecover,\n AfterRemove,\n AfterSoftRemove,\n AfterUpdate,\n BeforeInsert,\n BeforeRecover,\n BeforeRemove,\n BeforeSoftRemove,\n BeforeUpdate,\n TreeChildren,\n TreeParent,\n PrimaryGeneratedColumn,\n PrimaryColumn,\n Index,\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Column,\n VersionColumn,\n VirtualColumn,\n JoinTable,\n JoinColumn,\n OneToMany,\n OneToOne,\n ManyToMany,\n ManyToOne,\n} from 'taon-typeorm/browser-prod';\n\nexport { Column as CustomColumn } from 'taon-typeorm/browser-prod';\nexport { Generated as GeneratedColumn } from 'taon-typeorm/browser-prod';\n/**\n * 100 default characters varchar\n */\nexport const StringColumn = <T = string>(\n defaultValue: T = null,\n length = 100,\n) =>\n Column({\n type: 'varchar',\n length,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 100 characters varchar\n */\nexport const String100Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 100,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 20 characters varchar\n */\nexport const String20Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 20,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 45 characters varchar\n */\nexport const String45Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 45,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 50 characters varchar\n */\nexport const String50Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 50,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 500 characters varchar\n */\nexport const String500Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 500,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 200 characters varchar\n */\nexport const String200Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 200,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\nexport const NumberColumn = () => Column({ type: 'int', nullable: true });\n\nexport const DecimalNumberColumn = () =>\n Column({ type: 'float', nullable: true });\n\nexport const SimpleJsonColumn = () =>\n Column({ type: 'simple-json', nullable: true });\n\nexport const BooleanColumn = (defaultValue: boolean | null) =>\n Column({ type: 'boolean', nullable: true, default: defaultValue });\n\nexport const DateTimeColumn = (defaultValue: boolean | null = null) =>\n Column({ type: 'datetime', nullable: true, default: defaultValue });","import { EndpointContext } from '../endpoint-context';\nimport type { RealtimeCore } from './realtime-core';\n\n//namespace RealtimeModels\n\n export type RealtimeModels__NS__SubsManagerOpt = {\n core: RealtimeCore;\n customEvent: string;\n roomName: string;\n property: string;\n };\n\n export interface RealtimeModels__NS__ChangeOption {\n /**\n * Specify property name to listen changes on that property only;\n */\n property?: string;\n /**\n * Override custom event name to listen\n */\n customEvent?: string;\n /**\n * Value from entity object.\n * Key for this value is usually id or unique key\n * property defined in entity decorator.\n * TODO @LAST IMPLEMENT unique key support\n */\n idOrUniqValue?: any;\n }\n\n export type RealtimeModels__NS__EventHandler = (...args: any[]) => void;\n\n//end of namespace RealtimeModels\n","import {\n DefaultMapping,\n DefaultModel,\n EncodeSchema,\n ModelValue,\n} from 'ng2-rest/browser-prod';\nimport { Entity } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Entity decorator\n */\nexport function TaonEntity<T = any>(options?: TaonEntityOptions<T>) {\n return function (constructor: Function) {\n options = options || ({} as any);\n options.uniqueKeyProp = options.uniqueKeyProp || ('id' as any);\n\n if(!options.className) {\n const nameForClass = constructor?.name || 'AnyClass';\n throw `Please define 'classname' property inside decorator of class '${nameForClass}':\n\n @TaonEntity({\n className: '${nameForClass}'\n })\n class ${constructor?.name} {\n //...\n\n `\n }\n\n ClassHelpers__NS__setName(constructor, options?.className);\n\n DefaultMapping(options?.defaultModelMapping)(constructor as any);\n DefaultModel(options.defaultModelMapping)(constructor as any);\n\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.entity,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n/* */\n/* */\n \n CLASS__NS__setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest\n };\n}\n\nexport class TaonEntityOptions<T = any> extends DecoratorAbstractOpt {\n /**\n * default unique property is \"id\"\n * for your entity it may be something else\n */\n uniqueKeyProp?: string;\n\n createTable?: boolean;\n\n defaultModelValues?: () => ModelValue<T>;\n\n defaultModelMapping?: () => EncodeSchema<T>;\n}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Migration decorator\n */\nexport function TaonMigration(options: TaonMigrationOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.migration,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n } as any;\n}\n\nexport class TaonMigrationOptions<T = any> extends DecoratorAbstractOpt {}","import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Provider decorator\n */\nexport function TaonProvider<T = any>(\n options?: TaonProviderOptions<T>,\n) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonProviderOptions<T = any> extends DecoratorAbstractOpt {\n // providers is a singleton for each context\n}","import 'reflect-metadata'; // TODO this is needed for my decorators to work\n\nimport { RestErrorResponseWrapper } from 'ng2-rest/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport * as base from './base-classes/base';\nimport * as createContextFn from './create-context';\nimport * as controllerDecorator from './decorators/classes/controller-decorator';\nimport * as entityDecorator from './decorators/classes/entity-decorator';\nimport * as middlewareDecorator from './decorators/classes/middleware-decorator';\nimport * as migrationDecorator from './decorators/classes/migration-decorator';\nimport * as providerDecorator from './decorators/classes/provider-decorator';\nimport * as repositoryDecorator from './decorators/classes/repository-decorator';\nimport * as subscriberDecorator from './decorators/classes/subscriber-decorator';\nimport * as http from './decorators/http/http-decorators';\nimport * as endpointContext from './endpoint-context';\nimport * as getResponse from './get-response-value';\nimport * as injectFn from './inject';\nimport * as models from './models';\nimport * as orm from './orm';\n// import * as allSymbols from './symbols';\n\n// export * from './build-info._auto-generated_';\nexport * from './constants';\nexport * from './context-db-migrations';\nexport * from './create-context';\nexport * from './endpoint-context-storage';\nexport * from './endpoint-context';\nexport * from './entity-process';\nexport * from './get-response-value';\n// export * from './index';\nexport * from './inject';\nexport * from './models';\nexport * from './symbols';\nexport * from './validators';\nexport * from './base-classes/base-abstract-entity';\nexport * from './base-classes/base-angular-service';\nexport * from './base-classes/base-class';\nexport * from './base-classes/base-context';\nexport * from './base-classes/base-controller';\nexport * from './base-classes/base-crud-controller';\nexport * from './base-classes/base-kv-repository';\nexport * from './base-classes/base-custom-repository';\nexport * from './base-classes/base-entity';\nexport * from './base-classes/base-file-upload.middleware';\nexport * from './base-classes/base-injector';\nexport * from './base-classes/base-middleware';\nexport * from './base-classes/base-migration';\nexport * from './base-classes/base-provider';\nexport * from './base-classes/base-repository';\nexport * from './base-classes/base-subscriber-for-entity';\nexport * from './config/controller-config';\nexport * from './config/controller-options';\nexport * from './config/method-config';\nexport * from './config/param-config';\nexport * from './decorators/decorator-abstract-opt';\nexport * from './dependency-injection/di-container';\nexport * from './formly/formly-group-wrapper.component'; // @browser\nexport * from './formly/formly-repeat.component'; // @browser\nexport * from './formly/formly.models'; // @browser\nexport * from './formly/fromly'; // @browser\nexport * from './formly/type-from-entity'; // @browser\nexport * from './helpers/class-helpers';\nexport * from './helpers/clone-obj';\nexport * from './helpers/taon-helpers';\nexport * from './orm/columns';\nexport * from './realtime/realtime-client';\nexport * from './realtime/realtime-core';\nexport * from './realtime/realtime-server';\nexport * from './realtime/realtime-subs-manager';\nexport * from './realtime/realtime.models';\nexport * from './decorators/classes/controller-decorator';\nexport * from './decorators/classes/entity-decorator';\nexport * from './decorators/classes/middleware-decorator';\nexport * from './decorators/classes/migration-decorator';\nexport * from './decorators/classes/provider-decorator';\nexport * from './decorators/classes/repository-decorator';\nexport * from './decorators/classes/subscriber-decorator';\nexport * from './decorators/http/http-methods-decorators';\nexport * from './decorators/http/http-params-decorators';\nexport * from './realtime/realtime-strategy/realtime-strategy-ipc';\nexport * from './realtime/realtime-strategy/realtime-strategy-mock';\nexport * from './realtime/realtime-strategy/realtime-strategy-socket-io';\nexport * from './realtime/realtime-strategy/realtime-strategy';\nexport * from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\nexport * from './formly/formly-group-wrapper.component'; // @browser\nexport * from './formly/formly-repeat.component'; // @browser\n\nexport type {\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\n\n// TODO export all things\n\n//namespace Taon\n\n /**\n * Remove global taon loader from env.ts [loading.preAngularBootstrap]\n */\n export const Taon__NS__removeLoader = (afterMS: number = 0): Promise<void> => {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n (globalThis?.window as Window)?.document\n ?.getElementById('taonpreloadertoremove')\n ?.remove();\n\n const body = (globalThis?.window as Window)?.document?.body;\n if (body && body.style) {\n body.style.backgroundColor = '';\n }\n resolve();\n }, afterMS);\n });\n };\n\n export const Taon__NS__error = (\n opt:\n | Pick<\n RestErrorResponseWrapper,\n 'message' | 'status' | 'details' | 'code'\n >\n | string,\n ): void => {\n throw () => {\n if (typeof opt === 'string') {\n opt = {\n message: opt,\n };\n }\n return opt;\n };\n };\n\n export type Taon__NS__ResponseHtml = models.Models__NS__Http__NS__Response<string>;\n export type Taon__NS__Response<T = string> = models.Models__NS__Http__NS__Response<T>;\n // TODO new 5.8 typescript is not allowing this\n // export import Http = http.Http;\n // export import Base = base.Base;\n // export import Orm = orm.Orm;\n\n export type Taon__NS__StartParams = models.Models__NS__StartParams;\n export const Taon__NS__getResponseValue = getResponse.getResponseValue;\n\n //#region class decorators\n // TODO new 5.8 typescript is not allowing this\n // export import Controller = controllerDecorator.TaonController;\n // export import Entity = entityDecorator.TaonEntity;\n // export import Provider = providerDecorator.TaonProvider;\n // export import Repository = repositoryDecorator.TaonRepository;\n // export import Subscriber = subscriberDecorator.TaonSubscriber;\n // export import Migration = migrationDecorator.TaonMigration;\n // export import Middleware = middlewareDecorator.TaonMiddleware;\n //#endregion\n\n //#region aliases to helpers\n export const Taon__NS__isBrowser = UtilsOs__NS__isBrowser;\n export const Taon__NS__isNode = UtilsOs__NS__isNode;\n export const Taon__NS__isWebSQL = UtilsOs__NS__isWebSQL;\n export const Taon__NS__isElectron = UtilsOs__NS__isElectron;\n //#endregion\n export const Taon__NS__createContext = createContextFn.createContext;\n export const Taon__NS__createContextTemplate = createContextFn.createContextTemplate;\n\n export const Taon__NS__inject = injectFn.inject;\n\n /**\n * @deprecated\n * use createContext instead\n */\n export const Taon__NS__init = async (options: {\n host: string;\n entities: Function[];\n controllers: Function[];\n }) => {\n const TaonBaseContext = (await import('./base-classes/base-context'))\n .TaonBaseContext;\n const context = Taon__NS__createContext(() => ({\n appId: 'default-app-not-used-anymore',\n contextName: 'default',\n host: options.host,\n contexts: { TaonBaseContext },\n database: true,\n entities: Array.from(options.entities) as any,\n controllers: Array.from(options.controllers) as any,\n }));\n\n await context.initialize();\n return context;\n };\n\n//end of namespace Taon\n\n\n//#region taon flattening map\nexport const TAON_FLATTEN_MAPPING = {\n 'taon/src': {\n // =====================\n // Taon.Http.*\n // =====================\n 'Taon.Http.GET': 'GET',\n 'Taon.Http.POST': 'POST',\n 'Taon.Http.PUT': 'PUT',\n 'Taon.Http.DELETE': 'DELETE',\n 'Taon.Http.PATCH': 'PATCH',\n 'Taon.Http.HEAD': 'HEAD',\n 'Taon.Http.HTML': 'HTML',\n 'Taon.Http.Response': 'HttpResponse',\n\n 'Taon.Http.Param.Query': 'Query',\n 'Taon.Http.Param.Path': 'Path',\n 'Taon.Http.Param.Body': 'Body',\n 'Taon.Http.Param.Cookie': 'Cookie',\n 'Taon.Http.Param.Header': 'Header',\n\n // =====================\n // Taon.Base.*\n // =====================\n 'Taon.Base.Controller': 'TaonBaseController',\n 'Taon.Base.CrudController': 'TaonBaseCrudController',\n 'Taon.Base.Entity': 'TaonBaseEntity',\n 'Taon.Base.AbstractEntity': 'TaonBaseAbstractEntity',\n 'Taon.Base.AbstractEntityOmitKeys': 'AbstractEntityOmitKeys',\n 'Taon.Base.Provider': 'TaonBaseProvider',\n 'Taon.Base.Class': 'TaonBaseClass',\n 'Taon.Base.Repository': 'TaonBaseRepository',\n 'Taon.Base.CustomRepository': 'TaonBaseCustomRepository',\n 'Taon.Base.SubscriberForEntity': 'TaonBaseSubscriberForEntity',\n 'Taon.Base.Migration': 'TaonBaseMigration',\n 'Taon.Base.Middleware': 'TaonBaseMiddleware',\n 'Taon.Base.AngularService': 'TaonBaseAngularService',\n 'Taon.Base.Context': 'TaonBaseContext',\n\n // =====================\n // Taon.Controller.* (decorators)\n // =====================\n 'Taon.Controller': 'TaonController',\n 'Taon.Entity': 'TaonEntity',\n 'Taon.Provider': 'TaonProvider',\n 'Taon.Repository': 'TaonRepository',\n 'Taon.Subscriber': 'TaonSubscriber',\n 'Taon.Migration': 'TaonMigration',\n 'Taon.Middleware': 'TaonMiddleware',\n\n // =====================\n // Taon.Orm.*\n // =====================\n 'Taon.Orm.Repository': 'Repository',\n 'Taon.Orm.Connection': 'Connection',\n\n // ListenEvent\n 'Taon.Orm.ListenEvent.AfterInsert': 'AfterInsert',\n 'Taon.Orm.ListenEvent.AfterLoad': 'AfterLoad',\n 'Taon.Orm.ListenEvent.AfterRecover': 'AfterRecover',\n 'Taon.Orm.ListenEvent.AfterRemove': 'AfterRemove',\n 'Taon.Orm.ListenEvent.AfterSoftRemove': 'AfterSoftRemove',\n 'Taon.Orm.ListenEvent.AfterUpdate': 'AfterUpdate',\n 'Taon.Orm.ListenEvent.BeforeInsert': 'BeforeInsert',\n 'Taon.Orm.ListenEvent.BeforeRecover': 'BeforeRecover',\n 'Taon.Orm.ListenEvent.BeforeRemove': 'BeforeRemove',\n 'Taon.Orm.ListenEvent.BeforeSoftRemove': 'BeforeSoftRemove',\n 'Taon.Orm.ListenEvent.BeforeUpdate': 'BeforeUpdate',\n\n // Tree\n 'Taon.Orm.Tree.Children': 'TreeChildren',\n 'Taon.Orm.Tree.Parent': 'TreeParent',\n\n // Column\n 'Taon.Orm.Column.Generated': 'Generated',\n 'Taon.Orm.Column.Primary': 'PrimaryColumn',\n 'Taon.Orm.Column.Index': 'Index',\n 'Taon.Orm.Column.CreateDate': 'CreateDateColumn',\n 'Taon.Orm.Column.UpdateDate': 'UpdateDateColumn',\n 'Taon.Orm.Column.DeleteDate': 'DeleteDateColumn',\n 'Taon.Orm.Column.Custom': 'Column',\n\n 'Taon.Orm.Column.String': 'StringColumn',\n 'Taon.Orm.Column.String100': 'String100Column',\n 'Taon.Orm.Column.String45': 'String45Column',\n 'Taon.Orm.Column.String500': 'String500Column',\n 'Taon.Orm.Column.String200': 'String200Column',\n 'Taon.Orm.Column.Number': 'NumberColumn',\n 'Taon.Orm.Column.DecimalNumber': 'DecimalNumberColumn',\n 'Taon.Orm.Column.SimpleJson': 'SimpleJsonColumn',\n 'Taon.Orm.Column.Boolean': 'BooleanColumn',\n 'Taon.Orm.Column.DateTIme': 'DateTimeColumn',\n\n 'Taon.Orm.Column.Version': 'VersionColumn',\n 'Taon.Orm.Column.Virtual': 'VirtualColumn',\n\n // Join\n 'Taon.Orm.Join.Table': 'JoinTable',\n 'Taon.Orm.Join.Column': 'JoinColumn',\n\n // Relation\n 'Taon.Orm.Relation.OneToMany': 'OneToMany',\n 'Taon.Orm.Relation.OneToOne': 'OneToOne',\n 'Taon.Orm.Relation.ManyToMany': 'ManyToMany',\n 'Taon.Orm.Relation.ManyToOne': 'ManyToOne',\n },\n 'taon-storage/src': {\n // =====================\n // Stor.* (new clean API)\n // =====================\n 'Stor.Property.In.LocalStorage': 'StorPropertyInLocalStorage',\n 'Stor.Property.In.IndexedDb': 'StorPropertyInIndexedDb',\n\n // short alias style (if you prefer this pattern in some codebases)\n 'Stor.In.LocalStorage': 'StorPropertyInLocalStorage',\n 'Stor.In.IndexedDb': 'StorPropertyInIndexedDb',\n\n // =====================\n // Stor.property.in.* (back-compat chain you mentioned)\n // =====================\n 'Stor.property.in.localstorage': 'StorPropertyInLocalStorage',\n 'Stor.property.in.indexedb': 'StorPropertyInIndexedDb',\n 'Stor.property.in.indexedDb': 'StorPropertyInIndexedDb',\n\n // Optional: if your old code had Stor.proper... (typo)\n 'Stor.proper.in.localstorage': 'StorPropertyInLocalStorage',\n 'Stor.proper.in.indexedb': 'StorPropertyInIndexedDb',\n },\n} satisfies Record<string, Record<string, string>>;\n//#endregion","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["inject","this","taonInject","i1","getResponse.getResponseValue","createContextFn.createContext","createContextFn.createContextTemplate","injectFn.inject"],"mappings":"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"}
1
+ {"version":3,"file":"taon-browser-prod.mjs","sources":["../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/constants.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/context-db-migrations.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/dependency-injection/di-container.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/get-response-value.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/decorator-abstract-opt.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/controller-options.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/controller-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/symbols.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/validators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/class-helpers.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/taon-helpers.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/models.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-client.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-server.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime-core.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/endpoint-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/endpoint-context-storage.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/breakpoints.service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/create-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/inject.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/entity-process.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/helpers/clone-obj.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-class.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-abstract-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-angular-service.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/middleware-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-injector.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-middleware.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-file-upload.middleware.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/repository-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-custom-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-context.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/controller-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/http/http-methods-decorators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/http/http-params-decorators.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-controller.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-crud-controller.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-kv-repository.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-migration.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-provider.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/subscriber-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/base-classes/base-subscriber-for-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/method-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/config/param-config.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/formly-group-wrapper.component.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/formly-repeat.component.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/type-from-entity.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/formly/fromly.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/orm/columns.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/realtime/realtime.models.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/entity-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/migration-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/decorators/classes/provider-decorator.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/lib/index.ts","../../../tmp-libs-for-dist-prod/taon/projects/taon/src/taon-browser-prod.ts"],"sourcesContent":["export type TaonEntityKeysToOmit =\n | 'ctrl'\n | 'clone'\n | '__endpoint_context__'\n | 'ctx'\n | 'inject'\n | '_'\n | 'relation'\n | 'relations'\n | 'inject'\n | 'injectRepo'\n | 'injectCustomRepository'\n | 'injectCustomRepo'\n | 'injectController'\n | 'injectCtrl'\n | 'injectProvider'\n | 'injectMiddleware';\n\nexport const TaonEntityKeysToOmitArr: TaonEntityKeysToOmit[] = [\n 'ctrl',\n 'clone',\n '__endpoint_context__',\n 'ctx',\n 'inject',\n '_',\n 'relation',\n 'relations',\n 'inject',\n 'injectRepo',\n 'injectCustomRepository',\n 'injectCustomRepo',\n 'injectController',\n 'injectCtrl',\n 'injectProvider',\n 'injectMiddleware',\n];\n\nimport { InjectionToken } from '@angular/core';\n\nimport type { TaonContext } from './create-context';\n\nlet TAON_CONTEXT: InjectionToken<TaonContext>;\n//#region @browser\nTAON_CONTEXT = new InjectionToken<TaonContext>('TAON_CONTEXT');\n//#endregion\n\nlet CURRENT_HOST_BACKEND_PORT: InjectionToken<number>;\n//#region @browser\nCURRENT_HOST_BACKEND_PORT = new InjectionToken<number>(\n 'CURRENT_HOST_BACKEND_PORT',\n);\n//#endregion\n\nlet CURRENT_HOST_URL: InjectionToken<string>;\n//#region @browser\nCURRENT_HOST_URL = new InjectionToken<string>(\n 'CURRENT_HOST_URL',\n);\n//#endregion\n\nexport { TAON_CONTEXT, CURRENT_HOST_BACKEND_PORT, CURRENT_HOST_URL };\n\nexport const apiPrefix = 'api';","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsMigrations__NS__formatTimestamp, UtilsMigrations__NS__getFormattedTimestampFromClassName, UtilsMigrations__NS__getTimestampFromClassName, UtilsMigrations__NS__isValidTimestamp } from 'tnp-core/browser-prod';\nimport { TaonBaseMigration } from './base-classes/base-migration';\nimport type { EndpointContext } from './endpoint-context';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport {\n Column,\n DataSource,\n Entity,\n EntitySchema,\n Index,\n PrimaryGeneratedColumn,\n QueryRunner,\n Table,\n TableColumn,\n TableIndex,\n} from 'taon-typeorm/browser-prod';\n//#endregion\n\n//#region models\nexport type MigrationStatus = 'completed' | 'pending';\n\nexport class ContextDbMigrations {\n //#region fields\n\n //#region fields / migration table name\n readonly DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';\n //#endregion\n\n //#region fields / migration statuses\n readonly MIGRATION_STATUS_COMPLETED: MigrationStatus = 'completed';\n readonly MIGRATION_STATUS_PENDING: MigrationStatus = 'pending';\n //#endregion\n\n //#region fields / migration table schema\n readonly table = new Table({\n name: this.DEFAULT_MIGRATION_TABLE_NAME,\n columns: [\n {\n name: 'id',\n type: 'integer',\n isPrimary: true, // Mark it as the primary key\n isGenerated: true, // Enable auto-generation\n generationStrategy: 'increment', // Use auto-increment strategy\n },\n {\n name: 'name',\n type: 'varchar',\n length: '255',\n isUnique: true, // Ensure the name is unique\n isNullable: false, // Ensure this field is required\n },\n {\n // context is a part of name\n name: 'context',\n type: 'varchar',\n length: '255',\n isNullable: false, // Optional context for migrations (e.g., tenant or module name)\n },\n {\n name: 'applied_at',\n type: 'timestamp',\n default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp\n isNullable: true,\n },\n {\n name: 'status',\n type: 'varchar',\n length: '50',\n default: `'${this.MIGRATION_STATUS_COMPLETED}'`,\n isNullable: false,\n },\n // { // TODO not needed for now\n // name: 'checksum',\n // type: 'varchar',\n // length: '64',\n // isNullable: true, // Optional field to store a hash/checksum of migration file\n // },\n ],\n });\n //#endregion\n\n //#endregion\n\n //#region constructor\n constructor(private ctx: EndpointContext) {}\n //#endregion\n\n //#region methods & getters / make sure migration table exists\n async ensureMigrationTableExists(): Promise<void> {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / revert migration to timestamp\n private async logSelectALl(name: string, queryRunner: QueryRunner) {\n console.log(\n name,\n (\n await queryRunner.query(\n `SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`,\n [this.ctx.contextName],\n )\n ).map(m => m.name),\n );\n }\n\n async revertMigrationToTimestamp(timestamp: number) {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / clear migration table\n async clearMigrationTable() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / mark all migrations as applied\n async markAllMigrationsAsApplied() {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / run all migrations\n async runAllNotCompletedMigrations() {\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","export class DITaonContainer {\n private static instances = new Map();\n\n static resolve<T>(target: Function): T {\n if (DITaonContainer.instances.has(target)) {\n return DITaonContainer.instances.get(target);\n }\n\n // const tokens = Reflect.getMetadata('design:paramtypes', target) || [];\n const injections = []; // tokens.map(token => Container.inject<any>(token));\n\n const instance = new (target as any)(...injections);\n DITaonContainer.instances.set(target, instance);\n return instance;\n }\n\n static inject<T>(target: new (...args: any[]) => T): T {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n return typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n },\n set: (_, propName, value) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n instance[propName] = value;\n return true;\n },\n },\n ) as T;\n }\n}","import { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { ExpressRequest, ExpressResponse } from './express-types';\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './helpers/taon-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\n\nexport const getResponseValue = <T>(\n response: Models__NS__Http__NS__Response<T>,\n options?: { req: ExpressRequest<any>; res: ExpressResponse<any> },\n): Promise<T> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};","import { TaonBaseClass } from '../base-classes/base-class';\nexport class DecoratorAbstractOpt {\n declare className: string;\n}","import { DecoratorAbstractOpt } from '../decorators/decorator-abstract-opt';\nimport type { TaonMiddlewareFunction } from '../decorators/http/http-methods-decorators';\n\nexport class TaonControllerOptions<\n ControllerClass = any,\n> extends DecoratorAbstractOpt {\n /**\n * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n */\n declare realtime?: boolean;\n /**\n * override default path for controller api\n */\n declare path?: string;\n /**\n * Middlewares to be applied to all methods in the controller\n */\n declare middlewares?: TaonMiddlewareFunction;\n}","// import type { TaonBaseMiddleware } from '../base-classes/base-middleware';\nimport { TaonMiddlewareInheritanceObj } from '../decorators/http/http-methods-decorators';\n// import { cloneObj } from '../helpers/clone-obj';\n\nimport { TaonControllerOptions } from './controller-options';\nimport { MethodConfig } from './method-config';\n// import { ParamConfig } from './param-config';\n\nexport class ControllerConfig extends TaonControllerOptions {\n declare methods: { [methodName: string]: Partial<MethodConfig> };\n /**\n * Calculated path from parents controllers\n */\n declare calculatedPath?: string;\n /**\n * a way to transform entity before sending to browser\n */\n declare browserTransformFn?: (entity: any) => any;\n /**\n * Calculated middlewares object from parents controllers\n */\n declare calculatedMiddlewaresControllerObj?: TaonMiddlewareInheritanceObj;\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<ControllerConfig>): ControllerConfig {\n // return cloneObj<ControllerConfig>(override, ControllerConfig);\n // }\n}\n\nexport const controllerConfigFrom = (\n partial: Partial<ControllerConfig>,\n): ControllerConfig => {\n const newObj: ControllerConfig = partial || ({} as any);\n newObj.methods = newObj.methods || {};\n for (const methodName in newObj.methods) {\n if (newObj.methods.hasOwnProperty(methodName)) {\n // newObj.methods[methodName] = new MethodConfig().clone(\n // newObj.methods[methodName],\n // );\n\n newObj.methods[methodName] = newObj.methods[methodName] || {};\n\n const params =\n (newObj.methods[methodName] as MethodConfig).parameters || {};\n (newObj.methods[methodName] as MethodConfig).parameters = params\n ? params\n : {};\n\n for (const paramName in params) {\n if (params.hasOwnProperty(paramName)) {\n params[paramName] = params[paramName] || {};\n // params[paramName] = new ParamConfig().clone(params[paramName]);\n }\n }\n }\n }\n return newObj;\n};","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n/**\n * for backendSocket.in(ROOM_NAME).emit(EVENT)\n *\n * Room names are uniqe..\n * here I am limiting number of event for clients.\n */\nclass Realtime {\n NAMESPACE(contextName: string) {\n return `${contextName}-taonRealtimeNsp`;\n }\n\n TABLE_CHANGE(contextName: string, tableName: string) {\n return `${contextName}:listentablename${tableName}`;\n }\n\n readonly KEYroomSubscribe = `roomSubscribe`;\n\n readonly KEYroomUnsubscribe = `roomUnsubscribe`;\n\n // /**\n // * TODO use it or not?\n // * @deprecated\n // */\n // ROOM_NAME_SUBSCRIBER_EVENT(\n // contextName: string,\n // className: string,\n // propertyName: string,\n // ) {\n // return `${contextName}:room${___NS__camelCase(className)}${propertyName}`.toLowerCase();\n // }\n\n //#region custom events in rooms\n ROOM_NAME_CUSTOM(contextName: string, customEvent: string) {\n return `${contextName}:CustomRoomEvent${customEvent}`;\n }\n\n ROOM_SUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}CustomRoomEvent`;\n }\n\n ROOM_UNSUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}CustomRoomEvent`;\n }\n //#endregion\n\n //#region entity events\n ROOM_NAME_UPDATE_ENTITY(\n contextName: string,\n className: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${___NS__camelCase(className)}${entityId}`.toLowerCase();\n }\n\n ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityEvents`;\n }\n //#endregion\n\n //#region entity property events\n ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n contextName: string,\n className: string,\n property: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${___NS__camelCase(className)}${___NS__camelCase(property)}${entityId}`.toLowerCase();\n }\n\n ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityPropertyEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityPropertyEvents`;\n }\n //#endregion\n}\n\n//namespace Symbols\n\n export const Symbols__NS__ctxInClassOrClassObj = Symbol();\n\n export const Symbols__NS__fullClassNameStaticProperty: string = `$$fullclassName$$`;\n\n export const Symbols__NS__orignalClassClonesObj: string = `$$originalClassClonesObj$$`;\n export const Symbols__NS__classMethodsNames: string = `$$classMethodsNames$$`;\n\n export const Symbols__NS__REALTIME = new Realtime();\n\n export const Symbols__NS__metadata = {\n className: `class:realname`,\n options: {\n controller: `controller:options`,\n entity: `entity:options`,\n repository: `repository:options`,\n provider: `provider:options`,\n subscriber: `subscriber:options`,\n migration: `migration:options`,\n },\n };\n\n export const Symbols__NS__old = {\n HAS_TABLE_IN_DB: Symbol(),\n MDC_KEY: `modeldataconfig`,\n WEBSQL_REST_PROGRESS_FUN: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_START: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_DONE: Symbol(),\n WEBSQL_REST_PROGRESS_TIMEOUT: Symbol(),\n\n X_TOTAL_COUNT: `x-total-count`,\n CIRCURAL_OBJECTS_MAP_BODY: `circuralmapbody`,\n CIRCURAL_OBJECTS_MAP_QUERY_PARAM: `circuralmapbody`,\n MAPPING_CONFIG_HEADER: `mappingheader`,\n MAPPING_CONFIG_HEADER_BODY_PARAMS: `mhbodyparams`,\n MAPPING_CONFIG_HEADER_QUERY_PARAMS: `mhqueryparams`,\n ENDPOINT_META_CONFIG: `ng2_rest_endpoint_config`,\n CLASS_DECORATOR_CONTEXT: `$$ng2_rest_class_context`,\n SOCKET_MSG: `socketmessageng2rest`,\n ANGULAR: {\n INPUT_NAMES: Symbol(),\n },\n ERROR_MESSAGES: {\n CLASS_NAME_MATCH: `Please check if your \"class name\" matches @Controller( className ) or @Entity( className )`,\n },\n };\n\n//end of namespace Symbols","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { MethodConfig } from './config/method-config';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\n\n//namespace Validators\n\n //#region vlidate class name\n export const Validators__NS__classNameVlidation = (className, target: Function) => {\n setTimeout(() => {\n // console.log(`check after timeout ${className} , production mode: ${FrameworkContext.isProductionMode}`)\n if (___NS__isUndefined(className)) {\n throw `[Taon]\n Please provide \"className\" property for each Controller and Entity:\n\n @Taon.Controller({ className: 'MyExampleCtrl' })\n class MyExampleCtrl {\n ...\n }\n\n @Taon.Entity({ className: 'MyExampleEntity' })\n class MyExampleEntity {\n ...\n }\n\n Notice that minified javascript code does not preserve\n Functions/Classes names -this is only solution to preserve classes names.\n\n `;\n }\n });\n\n return ___NS__isUndefined(className) ? target.name : className;\n };\n //#endregion\n\n //#region validate method config\n export const Validators__NS__checkIfMethodsWithReponseTYpeAlowed = (\n methods: MethodConfig[],\n current: MethodConfig,\n ) => {\n const defaultResponseType = 'text or JSON';\n if (!current.responseType) {\n return;\n }\n for (let index = 0; index < methods.length; index++) {\n const m = methods[index];\n if (m.path === current.path && m.responseType !== current.responseType) {\n throw new Error(`\n [taon] you can have 2 methods with same path but differetn reponseType-s\n\n ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}\n ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}\n\n Please change path name on of the methods.\n\n `);\n }\n }\n };\n //#endregion\n\n //#region validate class functions\n // TODO\n export const Validators__NS__validateClassFunctions = (\n controllers: any[],\n entities: any[],\n proviers: any[],\n repositories: any[],\n ) => {\n if (\n ___NS__isArray(controllers) &&\n controllers.filter(f => !___NS__isFunction(f)).length > 0\n ) {\n console.error('controllers', controllers);\n throw `\n\n Incorect value for property \"controllers\" inside Taon.Init(...)\n\n `;\n }\n\n if (\n ___NS__isArray(entities) &&\n entities.filter(f => !___NS__isFunction(f)).length > 0\n ) {\n console.error('entites', entities);\n throw `\n\n Incorect value for property \"entities\" inside Taon.Init(...)\n\n `;\n }\n };\n //#endregion\n\n export const Validators__NS__preventUndefinedModel = (model, id) => {\n if (___NS__isUndefined(model)) {\n throw `Bad update by id, config, id: ${id}`;\n }\n };\n\n//end of namespace Validators","//#region imports\n/* */ \nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport {\n controllerConfigFrom,\n ControllerConfig,\n} from '../config/controller-config';\nimport { MethodConfig } from '../config/method-config';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions } from '../validators';\n\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './taon-helpers';\n//#endregion\n\n//namespace ClassHelpers\n\n //#region get class from name\n /**\n * TODO - repalce in every place when getting class fn from object\n */\n export const ClassHelpers__NS__getClassFnFromObject = (json: Object) => {\n if (___NS__isUndefined(json) || ___NS__isNull(json)) {\n return;\n }\n if (json.constructor) {\n return json.constructor;\n }\n const p = Object.getPrototypeOf(json);\n return p && p.constructor && p.constructor.name !== 'Object'\n ? p.constructor\n : void 0;\n };\n //#endregion\n\n //#region get name\n export const ClassHelpers__NS__getName = (classFnOrObject: any): string => {\n // exception for FormData\n if (classFnOrObject instanceof FormData) {\n return 'FormData';\n }\n if (!classFnOrObject) {\n console.error('OBJECT OR CLASS', classFnOrObject);\n throw new Error(`Cannot get name from this object or class.`);\n }\n return (\n (classFnOrObject[CoreModels__NS__ClassNameStaticProperty]\n ? classFnOrObject[CoreModels__NS__ClassNameStaticProperty]\n : classFnOrObject?.constructor[CoreModels__NS__ClassNameStaticProperty]) ||\n (___NS__isFunction(classFnOrObject) ? CLASS__NS__getName(classFnOrObject) : void 0)\n );\n };\n //#endregion\n\n export const ClassHelpers__NS__getOrginalClass = (classFnOrObject: any): any => {\n const org = classFnOrObject[CoreModels__NS__OrignalClassKey];\n if (!org) {\n return classFnOrObject;\n }\n return ClassHelpers__NS__getOrginalClass(org);\n };\n\n //#region get full internal name\n export const ClassHelpers__NS__getFullInternalName = (classFnOrObject: any): string => {\n // exception for FormData\n\n if (!classFnOrObject) {\n throw new Error(`Cannot get name from: ${classFnOrObject}`);\n }\n return (\n (classFnOrObject[Symbols__NS__fullClassNameStaticProperty]\n ? classFnOrObject[Symbols__NS__fullClassNameStaticProperty]\n : classFnOrObject?.constructor[Symbols__NS__fullClassNameStaticProperty]) ||\n void 0\n );\n };\n //#endregion\n\n //#region get unique key\n export const ClassHelpers__NS__getUniqueKey = (classFnOrObject: any): string | undefined => {\n const classFn = ___NS__isFunction(classFnOrObject)\n ? classFnOrObject\n : classFnOrObject?.constructor;\n\n const config = Reflect.getMetadata(\n Symbols__NS__metadata.options.entity,\n classFn,\n ) as TaonEntityOptions;\n\n if (!config) {\n return void 0;\n }\n\n return config.uniqueKeyProp;\n };\n //#endregion\n\n //#region is class object\n export const ClassHelpers__NS__isContextClassObject = (obj: any): boolean => {\n if (\n !___NS__isObject(obj) ||\n ___NS__isArray(obj) ||\n ___NS__isRegExp(obj) ||\n ___NS__isBuffer(obj) ||\n ___NS__isArrayBuffer(obj)\n ) {\n return false;\n }\n if (___NS__isDate(obj)) {\n return true;\n }\n const className = ClassHelpers__NS__getName(obj);\n return ___NS__isString(className) && className !== 'Object';\n };\n //#endregion\n\n //#region get name\n\n export const ClassHelpers__NS__setName = (target: Function, className: string): void => {\n // console.log('setName', className, target.name)\n Validators__NS__classNameVlidation(className, target);\n target[CoreModels__NS__ClassNameStaticProperty] = className;\n };\n //#endregion\n\n //#region has parent with class name\n export const ClassHelpers__NS__hasParentClassWithName = (\n target: Function,\n className: string,\n targets = [],\n ): boolean => {\n if (!target) {\n return false;\n }\n targets.push(target);\n let targetProto = Object.getPrototypeOf(target);\n\n if (\n ___NS__isFunction(targetProto) &&\n ClassHelpers__NS__getName(targetProto) === className\n ) {\n // console.log(`true \"${___NS__first(targets).name}\" for ${targets.map(d => d.name).join(',')}`)\n return true;\n }\n return ClassHelpers__NS__hasParentClassWithName(targetProto, className, targets);\n };\n //#endregion\n\n //#region get methods name\n\n //#region not allowed as method name\n const notAllowedAsMethodName = [\n 'length',\n 'name',\n 'arguments',\n 'caller',\n 'constructor',\n 'apply',\n 'bind',\n 'call',\n 'toString',\n '__defineGetter__',\n '__defineSetter__',\n 'hasOwnProperty',\n '__lookupGetter__',\n '__lookupSetter__',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'valueOf',\n '__proto__',\n 'toLocaleString',\n ];\n //#endregion\n\n /**\n * Express async handler for middleware functions.\n */\n export const ClassHelpers__NS__asyncHandler = fn => (req, res, next) => {\n Promise.resolve(fn(req, res, next)).catch(next);\n };\n\n export const ClassHelpers__NS__getMethodsNames = (\n classOrClassInstance: any,\n allMethodsNames = [],\n ): string[] => {\n if (!classOrClassInstance) {\n return Utils__NS__uniqArray(allMethodsNames);\n }\n\n const isClassFunction = ___NS__isFunction(classOrClassInstance);\n const classFun = isClassFunction\n ? classOrClassInstance\n : Object.getPrototypeOf(classOrClassInstance);\n const objectToCheck = isClassFunction\n ? (classOrClassInstance as Function)?.prototype\n : classOrClassInstance;\n const prototypeObj = Object.getPrototypeOf(objectToCheck || {});\n\n const properties = ___NS__uniq([\n ...Object.getOwnPropertyNames(objectToCheck || {}),\n ...Object.getOwnPropertyNames(prototypeObj || {}),\n ...Object.keys(objectToCheck || {}),\n ...Object.keys(prototypeObj || {}),\n ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));\n\n properties\n .filter(methodName => typeof objectToCheck[methodName] === 'function')\n .forEach(p => allMethodsNames.push(p));\n\n if (\n !classFun ||\n !classFun.constructor ||\n classFun?.constructor?.name === 'Object'\n ) {\n return Utils__NS__uniqArray(allMethodsNames);\n }\n return ClassHelpers__NS__getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);\n };\n //#endregion\n\n //#region get controller configs\n export const ClassHelpers__NS__getControllerConfigs = (\n target: Function,\n configs: ControllerConfig[] = [],\n callerTarget?: Function,\n ): ControllerConfig[] => {\n if (!___NS__isFunction(target)) {\n throw `[typescript-class-helper][getControllerConfigs] Cannot get class config from: ${target}`;\n }\n\n let config: ControllerConfig;\n const parentClass = Object.getPrototypeOf(target);\n const parentName = parentClass ? ClassHelpers__NS__getName(parentClass) : void 0;\n const isValidParent = ___NS__isFunction(parentClass) && parentName !== '';\n\n config = controllerConfigFrom(ClassHelpers__NS__getClassConfig(target));\n\n configs.push(config);\n\n return isValidParent\n ? ClassHelpers__NS__getControllerConfigs(parentClass, configs, target)\n : configs;\n };\n //#endregion\n\n //#region ensure configs\n\n // Ensure ClassConfig on constructor, clone parent if needed\n export const ClassHelpers__NS__ensureClassConfig = (\n target: Function,\n ): Partial<ControllerConfig> => {\n let cfg: Partial<ControllerConfig> = Reflect.getOwnMetadata(\n Symbols__NS__metadata.options.controller, // META_KEYS.class,\n target,\n );\n\n if (!cfg) {\n cfg = { methods: {} };\n\n const parent = Object.getPrototypeOf(target);\n if (parent && parent !== Function.prototype) {\n const parentCfg: Partial<ControllerConfig> = Reflect.getMetadata(\n Symbols__NS__metadata.options.controller, // META_KEYS.class,\n parent,\n );\n if (parentCfg) {\n // Deep copy each method config so child gets its own objects\n const clonedMethods: Record<\n string | symbol,\n Partial<MethodConfig>\n > = {};\n for (const [k, v] of Object.entries(parentCfg.methods)) {\n clonedMethods[k] = {\n ...v,\n parameters: { ...v.parameters }, // shallow clone parameters too\n };\n }\n\n cfg = {\n ...parentCfg,\n methods: clonedMethods,\n };\n }\n }\n\n Reflect.defineMetadata(Symbols__NS__metadata.options.controller, cfg, target);\n }\n\n return cfg;\n };\n\n // Ensure MethodConfig inside ClassConfig\n export const ClassHelpers__NS__ensureMethodConfig = (\n target: any,\n propertyKey: string | symbol,\n ): Partial<MethodConfig> => {\n const classCfg = ClassHelpers__NS__ensureClassConfig(target.constructor);\n let methodCfg: Partial<MethodConfig> =\n classCfg.methods[propertyKey?.toString()];\n if (!methodCfg) {\n methodCfg = { methodName: propertyKey?.toString(), parameters: {} };\n classCfg.methods[propertyKey?.toString()] = methodCfg as MethodConfig;\n }\n return methodCfg;\n };\n\n export const ClassHelpers__NS__getClassConfig = (\n constructor: Function,\n ): Partial<ControllerConfig> | undefined => {\n return Reflect.getMetadata(\n Symbols__NS__metadata.options.controller,\n constructor,\n );\n };\n //#endregion\n\n//end of namespace ClassHelpers","import * as JSON5 from 'json5';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport type { ControllerConfig } from '../config/controller-config';\nimport { MethodConfig } from '../config/method-config';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './class-helpers';\n\n//namespace TaonHelpers\n\n //#region fillUpTo string\n export const TaonHelpers__NS__fillUpTo = (s: string, nCharacters: number) => {\n return ___NS__times(nCharacters, n => {\n if (s.charAt(n)) {\n return s.charAt(n);\n }\n return ' ';\n }).join('');\n };\n //#endregion\n\n //#region is good path\n export const TaonHelpers__NS__isGoodPath = (p: string) => {\n return p && typeof p === 'string' && p.trim() !== '';\n };\n //#endregion\n\n export const TaonHelpers__NS__firstStringOrElemFromArray = (\n stringOrArrayOfString: string[] | string,\n ): string => {\n if (Array.isArray(stringOrArrayOfString)) {\n return ___NS__first(stringOrArrayOfString);\n }\n return stringOrArrayOfString;\n };\n\n //#region try transform params\n export const TaonHelpers__NS__tryTransformParam = param => {\n if (typeof param === 'string') {\n let n = Number(param);\n if (!isNaN(n)) return n;\n const bool = param.trim().toLowerCase();\n if (bool === 'true') {\n return true;\n }\n if (bool === 'false') {\n return false;\n }\n try {\n const t = JSON5.parse(param);\n return t;\n } catch (e) {\n return param;\n }\n }\n return param;\n };\n //#endregion\n\n //#region get expores path\n export const TaonHelpers__NS__getExpressPath = (\n c: ControllerConfig,\n pathOrClassConfig: Partial<MethodConfig>,\n ) => {\n if (typeof pathOrClassConfig === 'string')\n return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '');\n return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '');\n };\n //#endregion\n\n //#region get default value tyep\n export const TaonHelpers__NS__defaultType = value => {\n if (typeof value === 'string') return '';\n if (typeof value === 'boolean') return false;\n if (Array.isArray(value)) return {};\n if (typeof value === 'object') return {};\n };\n //#endregion\n\n //#region parse json with string jsons\n export const TaonHelpers__NS__parseJSONwithStringJSONs = (\n object: Object,\n waring = false,\n ): Object => {\n // console.log('checking object', object)\n if (!___NS__isObject(object)) {\n if (waring) {\n console.error(\n `\n parseJSONwithStringJSONs(...)\n Parameter should be a object, but is ${typeof object}\n `,\n object,\n );\n }\n\n return object;\n }\n\n let res = ___NS__cloneDeep(object);\n\n Object.keys(res).forEach(key => {\n let isJson = false;\n try {\n const possibleJSON = JSON.parse(res[key]);\n res[key] = possibleJSON;\n isJson = true;\n } catch (e) {\n isJson = false;\n }\n // console.log(`key ${key} is json `, isJson)\n if (isJson) {\n res[key] = TaonHelpers__NS__parseJSONwithStringJSONs(res[key], false);\n }\n });\n\n return res;\n };\n //#endregion\n\n //#region is plain file or folder\n export const TaonHelpers__NS__isPlainFileOrFolder = filePath => {\n return /^([a-zA-Z]|\\-|\\_|\\@|\\#|\\$|\\!|\\^|\\&|\\*|\\(|\\))+$/.test(filePath);\n };\n //#endregion\n\n //#region ips key name repsonse\n export const TaonHelpers__NS__ipcKeyNameResponse = (\n target: Function,\n methodConfig: Partial<MethodConfig>,\n expressPath: string,\n ) => {\n return [\n 'response',\n ClassHelpers__NS__getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n //#endregion\n\n //#region ipc key name request\n export const TaonHelpers__NS__ipcKeyNameRequest = (\n target: Function,\n methodConfig: Partial<MethodConfig>,\n expressPath: string,\n ) => {\n return [\n 'request',\n ClassHelpers__NS__getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n //#endregion\n\n //#region websql mocks\n export const TaonHelpers__NS__websqlMocks = headers => {\n const response: Express.Response = {\n status(status: any) {\n // console.log({status})\n return {\n send(send: any) {\n // console.log({status})\n },\n };\n },\n setHeader(key: string, value: any) {\n // console.log('Dummy set header', arguments)\n headers[key] = value;\n },\n };\n const request: Express.Request = {};\n return { request, response };\n };\n //#endregion\n\n//end of namespace TaonHelpers","import type { RequestHandler } from 'express';\nimport { HttpResponse, Ng2RestAxiosRequestConfig, ResourceResponse, RestErrorResponseWrapper, RestResponseWrapper, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseClass } from './base-classes/base-class';\nimport type { TaonBaseMiddleware } from './base-classes/base-middleware';\nimport type {\n TaonHttpDecoratorOptions,\n TaonMiddlewareFunction,\n TaonMiddlewareInheritanceObj,\n} from './decorators/http/http-methods-decorators';\nimport type { EndpointContext } from './endpoint-context';\nimport { ExpressRequest, ExpressResponse } from './express-types';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\n\n// ! TODO make it as a nice way to wrap normal request\nexport class TaonRestResponseWrapper extends RestResponseWrapper {}\n\nexport const BaseTaonClassesNames = [\n 'BaseCrudController',\n 'BaseController',\n 'BaseAbstractEntity',\n 'BaseEntity',\n 'BaseContext',\n 'BaseCustomRepository',\n 'BaseFileUploadMiddleware',\n 'BaseMiddleware',\n 'BaseClass',\n 'BaseInjector',\n 'BaseMigration',\n 'BaseProvider',\n 'BaseRepository',\n 'BaseSubscriberForEntity',\n 'BaseCliWorkerController',\n 'PortsController',\n 'PortsContext',\n] as const;\n\nexport const TaonTempDatabasesFolder = 'databases';\n\nexport const TaonTempRoutesFolder = 'routes';\n\n//namespace Models\n\n export const Models__NS__DatabasesFolder = TaonTempDatabasesFolder;\n export type Models__NS__FrameworkMode =\n | 'backend-frontend(tcp+udp)'\n | 'remote-backend(tcp+udp)'\n | 'backend-frontend(ipc-electron)'\n | 'backend-frontend(websql-electron)'\n | 'backend-frontend(websql)';\n\n //#region models / class types\n export enum Models__NS__ClassType {\n ENTITY = 'ENTITY',\n CONTROLLER = 'CONTROLLER',\n REPOSITORY = 'REPOSITORY',\n PROVIDER = 'PROVIDER',\n SUBSCRIBER = 'SUBSCRIBER',\n MIGRATION = 'MIGRATION',\n MIDDLEWARE = 'MIDDLEWARE',\n }\n\n export const Models__NS__ClassTypeKey = {\n [Models__NS__ClassType.ENTITY]: 'entities',\n [Models__NS__ClassType.CONTROLLER]: 'controllers',\n [Models__NS__ClassType.REPOSITORY]: 'repositories',\n [Models__NS__ClassType.PROVIDER]: 'providers',\n [Models__NS__ClassType.SUBSCRIBER]: 'subscribers',\n [Models__NS__ClassType.MIGRATION]: 'migrations',\n [Models__NS__ClassType.MIDDLEWARE]: 'middlewares',\n } as {\n [key in Models__NS__ClassType]: keyof Models__NS__ContextOptions<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >;\n };\n\n //#endregion\n\n //#region models / middleware type\n export type Models__NS__MiddlewareType = [Function, any[]];\n //#endregion\n\n //#region models / db recreate mode\n /**\n * DROP_DB+MIGRATIONS (default for development)\n * Drop all tables + recreate them + run migrations\n * synchronize: true , dropSchema: true\n * use migrations: true\n *\n * MIGRATIONS (default for production)\n * Do not drop tables, only run migrations\n * synchronize: false, dropSchema: false\n * use migrations: true\n */\n export type Models__NS__DBRecreateMode =\n | 'DROP_DB+MIGRATIONS'\n | 'PRESERVE_DATA+MIGRATIONS';\n //#endregion\n\n //#region models / database connection options\n export class Models__NS__DatabaseConfigTypeOrm {\n /**\n * database name\n */\n database?: string;\n\n /**\n * only for file base db: sqlite, sqljs\n */\n location?: string;\n\n synchronize: boolean;\n\n dropSchema: boolean;\n\n type?: CoreModels__NS__DatabaseType;\n\n /**\n * Persists db on disk/local-storage if serverless db\n */\n autoSave?: boolean;\n\n /**\n * for websql db mode\n * true by default\n */\n useLocalForage?: boolean;\n\n logging: boolean;\n\n databasePort?: number;\n\n databaseHost?: string;\n\n databaseUsername?: string;\n\n databasePassword?: string;\n }\n //#endregion\n\n //#region models / database config\n export class Models__NS__DatabaseConfig extends Models__NS__DatabaseConfigTypeOrm {\n /**\n * Default value 'DROP_ALL'.\n *\n * Tell framework what is happening with db\n * when context is starting.\n */\n public recreateMode?: Models__NS__DBRecreateMode;\n\n static from(\n databasePartialConfig: Partial<\n Omit<\n Models__NS__DatabaseConfig,\n 'synchronize' | 'dropSchema' | 'databaseConfigTypeORM'\n >\n >,\n ): Models__NS__DatabaseConfig {\n return ___NS__merge(new Models__NS__DatabaseConfig(), databasePartialConfig);\n }\n\n get databaseConfigTypeORM(): Models__NS__DatabaseConfigTypeOrm {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n }\n //#endregion\n\n //#region models / session\n // export type ISession = {\n // secret?: string;\n // saveUninitialized?: boolean;\n // /**\n // * max age of session\n // */\n // cookieMaxAge?: number;\n // secure?: boolean;\n // resave?: boolean;\n // };\n //#endregion\n\n //#region models / context options\n export type Models__NS__ConnectionOptionsLogs = {\n http?: boolean;\n realtime?: boolean;\n framework?: boolean;\n db?: boolean;\n migrations?: boolean;\n routes?: boolean;\n };\n export interface Models__NS__ContextOptions<\n CONTEXTS,\n CONTROLLERS,\n ENTITIES,\n REPOSITORIES,\n PROVIDERS,\n SUBSCRIBERS,\n MIGRATIONS,\n MIDDLEWARES,\n > {\n appId?: string;\n\n contextName: string;\n /**\n * if defined and different from contextName\n * - context will NOT be initialized\n */\n activeContext?: string | null;\n /**\n * IMPORTANT! provide full url that starts with http:// or https://\n * host/port for initing backend server\n */\n host?: string;\n\n /**\n * Needs to be specified in docker environment only\n */\n hostPortNumber?: number;\n /**\n * IMPORTANT! provide full url that starts with http:// or https://\n * frontend host only needed when we are\n * using withCredentials for axios\n * and session cookie\n * or realtime communication\n */\n frontendHost?: string;\n\n /**\n * Needs to be specified in docker environment only\n */\n frontendHostPortNumber?: number;\n\n /**\n * User ipc for communication between BE/FE\n * when electron is used as a platform\n * Default: true\n */\n useIpcWhenElectron?: boolean;\n /**\n * taon contexts here\n * (module like structure)\n */\n contexts?: CONTEXTS;\n /**\n * taon controller here\n * (glue between frontend and backend)\n */\n controllers?: CONTROLLERS;\n /**\n * taon entities\n * (entities are used to create tables in db)\n */\n entities?: ENTITIES;\n /**\n * taon repositories\n * (repositories are used to access data from db)\n */\n repositories?: REPOSITORIES;\n /**\n * taon providers\n * (context singletons)\n */\n providers?: PROVIDERS;\n /**\n * taon subscribers\n * (subscribers are used to listen to db events)\n */\n subscribers?: SUBSCRIBERS;\n /**\n * taon migrations\n * (migrations are used to update db schema and achieve proper CI/CD)\n */\n migrations?: MIGRATIONS;\n /**\n * taon middlewares\n * middlewares are used to intercept requests\n * and responses in the context\n */\n middlewares?: MIDDLEWARES;\n /**\n * Config for express session\n */\n session?: boolean;\n /**\n * taon is not going to write .rest files to cwd()\n */\n skipWritingServerRoutes?: boolean;\n /**\n * TODO - this is still in progress\n * @deprecated\n */\n productionMode?: boolean;\n /**\n * If you want your context to never be started as separated server\n * use abstract: true\n * @default: false\n */\n abstract?: boolean;\n logs?: boolean | Models__NS__ConnectionOptionsLogs;\n database?: boolean | Partial<Models__NS__DatabaseConfig>;\n /**\n * disable default realtime communication through TCP upgrade sockets\n */\n disabledRealtime?: boolean;\n /**\n * Will be removed soon - cloud will handle certs and https\n * @deprecated\n */\n https?: {\n key: string;\n cert: string;\n };\n /**\n * TODO - will be removed soon\n * @deprecated\n */\n publicAssets?: { serverPath: string; locationOnDisk: string }[];\n /**\n * by default cwd === process.cwd()\n */\n cwd?: string;\n }\n //#endregion\n\n //#region models / http\n //namespace Models__NS__Http\n\n export type Models__NS__Http__NS__ContextENDPOINT = { target: Function; initFN: Function };\n\n export type Models__NS__Http__NS__FormlyFromType = 'material' | 'bootstrap';\n\n export type Models__NS__Http__NS__ExpressContext<T> = (\n req: ExpressRequest<any>,\n res: ExpressResponse<any>,\n ) => T;\n\n export type Models__NS__Http__NS__SyncResponse<T> = string | T;\n\n export type Models__NS__Http__NS__ResponseFuncOpt<T> = {\n limitSize?: (\n enties: Function | Function[],\n include: string[],\n exclude: string[],\n ) => void;\n };\n\n export type Models__NS__Http__NS__SyncResponseFunc<T> = (\n options?: Models__NS__Http__NS__ResponseFuncOpt<T>,\n ) => Models__NS__Http__NS__SyncResponse<T>;\n export type Models__NS__Http__NS__MixResponse<T> = Models__NS__Http__NS__SyncResponse<T> | Models__NS__Http__NS__ExpressContext<T>;\n\n export type Models__NS__Http__NS__PromiseObservableMix<T> = Promise<T> & {\n observable: Observable<T>;\n };\n\n export interface Models__NS__Http__NS__ClientAction<T> {\n /**\n * @deprecated use request() mehods instead\n */\n readonly received?: Models__NS__Http__NS__PromiseObservableMix<HttpResponse<T>>;\n request?(\n axiosConfig?: Ng2RestAxiosRequestConfig,\n ): Models__NS__Http__NS__PromiseObservableMix<HttpResponse<T>>;\n }\n\n export interface Models__NS__Http__NS__AsyncResponse<T> {\n (\n req?: ExpressRequest<any>,\n res?: ExpressResponse<any>,\n ): Promise<Models__NS__Http__NS__SyncResponse<T> | Models__NS__Http__NS__SyncResponseFunc<T>>;\n }\n\n export type Models__NS__Http__NS__Response<T = string> = Models__NS__Http__NS__AsyncResponse<T> & Models__NS__Http__NS__ClientAction<T>;\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n \n//end of namespace Models__NS__Http\n\n //#endregion\n\n //#region models / start params\n export interface Models__NS__StartParams {\n port: number;\n args: string[];\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }\n\n export interface Models__NS__TaonInitializeParams {\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }\n\n export interface Models__NS__TaonCtxCloneParams {\n useAsRemoteContext?: boolean;\n overrideRemoteHost?: string;\n overrideHost?: string;\n sourceContext?: EndpointContext;\n }\n\n //#endregion\n\n//end of namespace Models","//#region imports\n/* */\n/* */\n \nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { Subscriber } from 'rxjs';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from './realtime.models';\n//#endregion\n\nexport class RealtimeSubsManager {\n private isListening = false;\n private observers: Subscriber<any>[] = [];\n constructor(private options: RealtimeModels__NS__SubsManagerOpt) {}\n\n //#region methods & getters / start listen if not started\n startListenIfNotStarted(\n realtime: SocketClient<DefaultEventsMap, DefaultEventsMap>,\n ) {\n if (this.options.core.ctx.disabledRealtime) {\n console.warn(`[Taon][startListenIfNotStarted] sockets are disabled`);\n return;\n }\n\n if (!realtime) {\n console.warn(`[Taon][startListenIfNotStarted] invalid socket connection`);\n return;\n }\n\n if (!this.isListening) {\n // console.info(`[BROWSER]][IPC] subscribe to \"${this.options?.roomName}\" by sending event: \"${subscribeEvent}\"`, this.options);\n this.isListening = true;\n\n if (this.options.customEvent) {\n const subscribeEvent = Symbols__NS__REALTIME.ROOM_SUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client custom event notification\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n if (___NS__isString(this.options.property)) {\n const subscribeEvent =\n Symbols__NS__REALTIME.ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client entity property events updates\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n const subscribeEvent =\n Symbols__NS__REALTIME.ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n // this means: send to current client entity update events\n realtime.emit(subscribeEvent, this.options.roomName);\n }\n }\n\n // subPath -> SYMBOL - (customevnet|entityupdatebyid){..}{..}\n realtime.on(this.options.roomName, data => {\n this.update(data);\n });\n }\n }\n //#endregion\n\n //#region methods & getters / add observer\n add(observer: Subscriber<any>) {\n // log.info('Add observer')\n this.observers.push(observer);\n }\n //#endregion\n\n //#region methods & getters / remove observer\n remove(observer: Subscriber<any>) {\n // log.info('Remove observer')\n this.observers = this.observers.filter(obs => obs !== observer);\n if (this.observers.length === 0) {\n // log.info('Emit unsubscribe to server SERVER')\n this.isListening = false;\n const { core, customEvent, roomName, property } = this.options;\n\n const realtime = core.socketFE;\n\n if (customEvent) {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n if (___NS__isString(property)) {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n realtime.emit(\n Symbols__NS__REALTIME.ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n }\n }\n }\n }\n //#endregion\n\n //#region methods & getters / update\n private update(data: any) {\n // log.data(`realtime update!!!!! observers=${this.observers?.length} `)\n\n // console.log('updating', data);\n this.observers.forEach(observer => {\n // console.log(`observer closed: ${observer.closed}`,observer);\n if (!observer.closed) {\n observer.next(data);\n }\n });\n }\n //#endregion\n}","//#region imports\nimport { Observable } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseEntity } from '../base-classes/base-entity';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { RealtimeCore } from './realtime-core';\nimport { RealtimeSubsManager } from './realtime-subs-manager';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from './realtime.models';\n\n//#endregion\n\n/**\n * Client for realtime communication\n * you can listen to:\n * - entity changes (any property in table changed)\n * - entity custom property changes (specific property changed)\n * - entity table changes (new instance added, instance removed)\n * - custom events\n */\nexport class RealtimeClient {\n private subsManagers: { [path: string]: RealtimeSubsManager } = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n // this.core.ctx.logRealtime &&\n // Helpers__NS__info(`\n\n // [ctx=${this.core.ctx.contextName}] init RealtimeClient (type: ${this.core.ctx.contextType})\n\n // `);\n this.init();\n }\n }\n\n //#region methods & getters / init\n private init(): void {\n //#region prepare naspaces pathes\n const nspPath = {\n global: this.core.pathFor(),\n realtime: this.core.pathFor(\n Symbols__NS__REALTIME.NAMESPACE(this.core.ctx.contextName),\n ),\n };\n // console.log('[browser] nspPath', nspPath);\n\n if (this.core.ctx.isRemoteHost) {\n // NEED for remote host\n const nodeClientHostOrigin = this.core.ctx.host;\n\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] USING REMOTE FRONTEND HOST` +\n ` ${nodeClientHostOrigin} FOR REMOTE REALTIME`,\n );\n nspPath.global = new URL(\n `${nodeClientHostOrigin}${nspPath.global.pathname}`,\n );\n nspPath.realtime = new URL(\n `${nodeClientHostOrigin}${nspPath.realtime.pathname}`,\n );\n } else {\n if (\n this.core.ctx.config.frontendHost &&\n this.core.ctx.config.frontendHost !== '' &&\n this.core.ctx.isRunningInsideDocker\n ) {\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] USING FRONTEND HOST` +\n ` ${this.core.ctx.config.frontendHost} FOR REALTIME`,\n );\n nspPath.global = new URL(\n `${this.core.ctx.frontendHostUri.origin}${nspPath.global.pathname}`,\n );\n nspPath.realtime = new URL(\n `${this.core.ctx.frontendHostUri.origin}${nspPath.realtime.pathname}`,\n );\n } else {\n this.core.ctx.logRealtime &&\n Helpers__NS__logInfo(\n `[${this.core.ctx.contextName}] Not using frontend host for realtime`,\n );\n }\n }\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE GLOBAL ',\n nspPath.global.href + ` host: ${this.core.ctx.host}`,\n );\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE REALTIME',\n nspPath.realtime.href + ` host: ${this.core.ctx.host}`,\n );\n //#endregion\n\n //#region prepare globa FE socket\n this.core.conectSocketFE = this.core.strategy.ioClient(\n nspPath.global.origin,\n {\n path: nspPath.global.pathname,\n },\n );\n\n if (this.core.conectSocketFE.on) {\n this.core.conectSocketFE.on('connect', () => {\n // console.info(\n // `[CLIENT] connected to GLOBAL namespace ${global.nsp} of host: ${context.host}`,\n // );\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to GLOBAL namespace ${nspPath.global.pathname}` +\n ` of host: ${this.core.ctx.host}`,\n );\n });\n }\n\n //#endregion\n\n //#region prepare realtime FE socket\n this.core.socketFE = this.core.strategy.ioClient(nspPath.realtime.origin, {\n path: nspPath.realtime.pathname,\n });\n\n if (this.core.socketFE.on) {\n this.core.socketFE.on('connect', () => {\n // console.info(\n // `[CLIENT] connected to REALTIME namespace ${realtime.nsp} host: ${context.host}`,\n // );\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to REALTIME namespace ${nspPath.realtime.pathname}` +\n ` host: ${this.core.ctx.host}`,\n );\n });\n }\n\n //#endregion\n }\n //#endregion\n\n //#region methods & getters / listen changes entity\n /**\n * Usage:\n * myContext.realtimeClient.listenChangesEntity(myEntityInstance);\n *\n *\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * myContext.realtimeServer.triggerEntityChanges(myEntityInstance);\n * ...\n */\n listenChangesEntity<RESULT = any>(\n entityClassFnOrObj: Function | object,\n options?: RealtimeModels__NS__ChangeOption,\n ): Observable<RESULT> {\n options = ___NS__cloneDeep(options || ({} as any));\n\n if (___NS__isObject(entityClassFnOrObj)) {\n const orgObj = entityClassFnOrObj as TaonBaseEntity;\n entityClassFnOrObj =\n ClassHelpers__NS__getClassFnFromObject(entityClassFnOrObj);\n\n const uniqueKey = ClassHelpers__NS__getUniqueKey(entityClassFnOrObj);\n if (uniqueKey) {\n options.idOrUniqValue = orgObj[uniqueKey];\n }\n }\n\n //#region parameters validation\n const { property, customEvent } = options;\n const className = !customEvent && ClassHelpers__NS__getName(entityClassFnOrObj);\n\n if (___NS__isString(property)) {\n if (property.trim() === '') {\n throw new Error(\n `[Taon][listenChangesEntity.. incorrect property '' for ${className}`,\n );\n }\n }\n //#endregion\n\n return new Observable(observer => {\n //#region prepare parameters for manager\n\n if (this.core.ctx.disabledRealtime) {\n console.error(`[Taon][realtime rxjs] remove taon config flag:\n\n ...\n disabledRealtime: true\n ...\n\nto use socket realtime connection;\n `);\n return () => {\n // empty nothing to do\n };\n }\n\n let roomName: string;\n\n if (customEvent) {\n roomName = Symbols__NS__REALTIME.ROOM_NAME_CUSTOM(\n this.core.ctx.contextName,\n customEvent,\n );\n } else {\n roomName = ___NS__isString(property)\n ? Symbols__NS__REALTIME.ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n this.core.ctx.contextName,\n className,\n property,\n options.idOrUniqValue,\n )\n : Symbols__NS__REALTIME.ROOM_NAME_UPDATE_ENTITY(\n this.core.ctx.contextName,\n className,\n options.idOrUniqValue,\n );\n }\n\n const roomSubOptions: RealtimeModels__NS__SubsManagerOpt = {\n core: this.core,\n property,\n roomName,\n customEvent,\n };\n //#endregion\n\n const subManagerId =\n this.getUniqueIdentifierForConnection(roomSubOptions);\n if (!this.subsManagers[subManagerId]) {\n this.subsManagers[subManagerId] = new RealtimeSubsManager(\n roomSubOptions,\n );\n }\n const inst = this.subsManagers[subManagerId];\n inst.add(observer);\n\n inst.startListenIfNotStarted(this.core.socketFE);\n\n return () => {\n inst.remove(observer);\n };\n });\n }\n\n //#endregion\n\n //#region listen changes entity table\n /**\n * Listen changes entity table\n * Example: for pagination, lists update ...\n */\n listenChangesEntityTable<RESULT = any>(\n entityClassFn: Function,\n ): Observable<RESULT> {\n const className = ClassHelpers__NS__getName(entityClassFn);\n return this.listenChangesEntity<RESULT>(entityClassFn, {\n customEvent: Symbols__NS__REALTIME.TABLE_CHANGE(\n this.core.ctx.contextName,\n className,\n ),\n });\n }\n //#endregion\n\n //#region listen changes custom event\n listenChangesCustomEvent<RESULT = any>(\n customEvent: string,\n ): Observable<RESULT> {\n return this.listenChangesEntity<RESULT>(void 0, {\n customEvent,\n });\n }\n //#endregion\n\n //#region methods & getters / trigger custom event\\\n /**\n * Trigger custom event on backend\n * @param customEvent global event name\n * @param dataToPush\n */\n public triggerCustomEvent(customEvent: string, dataToPush?: any): void {\n this.core.socketFE.emit(customEvent, dataToPush);\n }\n //#endregion\n\n //#region methods & getters / get room id from\n private getUniqueIdentifierForConnection(\n options: RealtimeModels__NS__SubsManagerOpt,\n ): string {\n let url: URL = new URL(options.core.ctx.host);\n let contextNameForCommunication =\n options.core.ctx.contextNameForCommunication;\n return `${contextNameForCommunication}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n }\n //#endregion\n}","//#region imports\n/* */ \n\nimport { Observable, Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseEntity } from '../base-classes/base-entity';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { RealtimeCore } from './realtime-core';\n\n//#endregion\n\n/**\n * Server for realtime communication\n * you can trigger:\n * - entity changes (any property in table changed)\n * - entity custom property changes (specific property changed)\n * - entity table changes (new instance added, instance removed)\n * - custom events\n *\n * and also listen to:\n * - custom events from yourself\n */\nexport class RealtimeServer {\n // private jobs = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (core.ctx.disabledRealtime) {\n return;\n }\n/* */\n/* */\n \n }\n\n //#region methods & getters / init\n private init() {\n //#region @browser\n if (!this.core.ctx.config.frontendHost) {\n console.warn(`[Taon][Realtime]\n\n Frontend host is not defined\n REALTIME COMMUNICATION WILL NOT WORK\n\n provide \"frontendHost\" property in your taon config\n\n `);\n }\n //#endregion\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/* */\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 //#endregion\n\n //#region methods & getters / trigger changes\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private triggerChanges(\n entityObjOrClass: Function | object,\n property?: string,\n valueOfUniqueProperty?: number | string,\n customEvent?: string,\n customEventData?: any,\n ) {\n // console.log('customEventData', customEventData);\n // console.info('__triger entity changes');\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 //#endregion\n\n //#region entity changes\n\n //#region methods & getters / trigger entity changes\n public triggerEntityChanges(\n entityObjOrClass: Function | object,\n /**\n * value of unique key property of entity instance\n * (this value is not needed if entityObjOrClass is instance of entity)\n */\n idToTrigger?: number | string,\n ): void {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers__NS__getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n this.triggerChanges(entityObjOrClass as any, void 0, idToTrigger);\n }\n //#endregion\n\n //#region methods & getters / trigger entity property changes\n public triggerEntityPropertyChanges(\n entityObjOrClass: Function | object,\n /**\n * property name or array of property names that changed\n * for entity instance\n */\n property: string | string[],\n /**\n * value of unique key property of entity instance\n * (this value is not needed if entityObjOrClass is instance of entity)\n */\n idToTrigger?: number | string,\n ): void {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers__NS__getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityPropertyChanges][property=${\n property as string\n }] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n if (___NS__isArray(property)) {\n property.forEach(propertyFromArr => {\n this.triggerChanges(\n entityObjOrClass,\n propertyFromArr as any,\n idToTrigger,\n );\n });\n } else {\n this.triggerChanges(entityObjOrClass, property as any, idToTrigger);\n }\n }\n //#endregion\n\n //#region methods & getters / trigger entity table changes\n public triggerEntityTableChanges(\n entityClassOrInstance: Function | object,\n ): void {\n const className = ClassHelpers__NS__getName(entityClassOrInstance);\n\n if (this.core.ctx.disabledRealtime) {\n console.warn(\n `[Taon][TriggerEntityTableChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n this.triggerChanges(\n entityClassOrInstance as any,\n void 0,\n void 0,\n Symbols__NS__REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className),\n );\n }\n //#endregion\n\n //#endregion\n\n //#region custom changes\n\n //#region methods & getters / trigger custom event\n public triggerCustomEvent(customEvent: string, dataToPush: any): void {\n this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);\n }\n //#endregion\n\n //#region methods & getters / listen custom events from users\n /**\n * Listen to custom events from users\n * @param customEvent global event name\n */\n listenChangesCustomEvent(customEvent: string): Observable<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#endregion\n}","import { EndpointContext } from '../../endpoint-context';\nimport type { Server, ServerOptions } from 'socket.io';\nimport type { io } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io';\n\nexport abstract class RealtimeStrategy {\n constructor(protected ctx: EndpointContext) {}\n\n get ioClient(): typeof io {\n throw new Error('Not implemented');\n }\n\n ioServer(\n url: string,\n opt: ServerOptions,\n ): Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> {\n throw new Error('Not implemented');\n }\n\n abstract toString(): string;\n}","//#region imports\nimport type { ipcRenderer } from 'electron'; // @browser\nimport type * as Electron from 'electron';\n/* */ \nimport { Server, ServerOptions } from 'socket.io';\nimport type { io, ManagerOptions, SocketOptions } from 'socket.io-client';\n\nimport { EndpointContext } from '../../endpoint-context';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from '../realtime.models';\n\nimport { RealtimeStrategy } from './realtime-strategy';\n//#endregion\n\n//#region mock server ipc\nexport class MockServerIpc {\n static serverByContextName = new Map<string, MockServerIpc>();\n\n static from(contextName: string): MockServerIpc {\n if (!MockServerIpc.serverByContextName.has(contextName)) {\n MockServerIpc.serverByContextName.set(\n contextName,\n new MockServerIpc(contextName),\n );\n }\n return MockServerIpc.serverByContextName.get(contextName);\n }\n\n namespacesByName = new Map<string, MockNamespaceIpc>();\n\n //#region constructor\n constructor(public contextName: string) {\n MockServerIpc.serverByContextName.set(contextName, this);\n }\n //#endregion\n\n //#region of\n of(namespace: string): MockNamespaceIpc {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(\n namespace,\n new MockNamespaceIpc(namespace, this),\n );\n }\n return this.namespacesByName.get(namespace);\n }\n //#endregion\n}\n//#endregion\n\n//#region mock namespace ipc\nexport class MockNamespaceIpc {\n //#region fields & getters\n electronClients = new Set<Electron.WebContents>();\n roomsByRoomName: {\n [roomName: string]: Set<Electron.WebContents>;\n } = {};\n\n private namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n } = {};\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * Namespace name\n */\n public name: string,\n public server: MockServerIpc,\n ) {}\n //#endregion\n\n //#region on\n on(eventName: string, callback: RealtimeModels__NS__EventHandler) {\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 return (void 0);\n }\n //#endregion\n\n //#region off\n off(event: string, callback?: RealtimeModels__NS__EventHandler) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region emit\n emit(eventName: string, ...args: any[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region to\n to(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, true);\n }\n //#endregion\n\n //#region in\n in(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, false);\n }\n //#endregion\n\n //#region join\n join(webContents: Electron.WebContents, roomName: string) {\n if (!this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName] = new Set();\n }\n this.roomsByRoomName[roomName].add(webContents);\n }\n //#endregion\n\n //#region leave\n leave(webContents: Electron.WebContents, roomName: string) {\n if (this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName].delete(webContents);\n if (this.roomsByRoomName[roomName].size === 0) {\n delete this.roomsByRoomName[roomName];\n }\n }\n }\n //#endregion\n\n //#region path\n path() {\n return this.name;\n }\n //#endregion\n\n //#region get nsp\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n //#endregion\n}\n\n//#endregion\n\n//#region room emitter ipc\nclass RoomEmitterIpc {\n //#region constructor\n constructor(\n private electronClients: Set<Electron.WebContents>,\n /**\n * namespace name\n */\n private name: string,\n private includeSender: boolean = false,\n private sender: MockSocketIpc = null, // TODO QUICK FIX how to include sender\n ) {}\n //#endregion\n\n //#region emit in room\n emit(eventName: string, ...args: any[]): void {\n const emitEvent = `(${this.name}) \"${eventName}\"`;\n this.electronClients?.forEach(webContents => {\n webContents.send(emitEvent, ...args);\n });\n }\n //#endregion\n}\n//#endregion\n\n//#region mock socket ipc\nexport class MockSocketIpc {\n //#region fields & getters\n\n //#region fields & getters / ipc renderer\n //#region @browser\n ipcRenderer!: typeof ipcRenderer;\n //#endregion\n //#endregion\n\n //#region fields & getters / event handlers by name\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n };\n //#endregion\n\n //#region fields & getters / name\n get name() {\n return this.namespaceName;\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n /**\n * @param namespaceName instead url for ipc\n */\n constructor(public namespaceName: string) {\n //#region @browser\n this.ipcRenderer = (window as any).require('electron').ipcRenderer;\n //#endregion\n }\n //#endregion\n\n //#region on\n on(eventName: string, callback: (event: any, ...args: any[]) => void) {\n //#region @browser\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] = new Set();\n }\n this.socketEventHandlers[eventName].add(callback);\n\n const listenToEvent = `(${this.name}) \"${eventName}\"`;\n this.ipcRenderer.on(listenToEvent, (rendereEvent, data) => {\n callback(data);\n });\n\n if (eventName === 'connect') {\n const connectionEventKey = `(${this.name}) \"connection\"`;\n this.ipcRenderer.send(connectionEventKey, this.name);\n }\n //#endregion\n }\n //#endregion\n\n //#region off\n off(event: string, callback?: (event: any, ...args: any[]) => void) {\n //#region @browser\n if (!this.socketEventHandlers[event]) {\n return;\n }\n\n if (callback) {\n this.socketEventHandlers[event].delete(callback);\n } else {\n delete this.socketEventHandlers[event];\n }\n const removeListener = `(${this.name}) \"${event}\"`;\n\n this.ipcRenderer.removeListener(removeListener, data => {\n callback(data);\n });\n //#endregion\n }\n //#endregion\n\n //#region emit\n emit(event: string, ...args: any[]) {\n //#region @browser\n const emitEvent = `(${this.name}) \"${event}\"`;\n this.ipcRenderer.send(emitEvent, ...args);\n //#endregion\n }\n //#endregion\n}\n//#endregion\n\n/**\n * Purpose:\n * - backend-browser communication between 2 processes in electron mode\n */\nexport class RealtimeStrategyIpc extends RealtimeStrategy {\n //#region to string\n toString(): string {\n return 'ipc';\n }\n //#endregion\n\n //#region constructor\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n //#endregion\n\n //#region server & io\n ioServer(__: string, opt: ServerOptions) {\n const namespace = opt?.path || '/';\n const server = MockServerIpc.from(this.ctx.contextName);\n return server.of(namespace) as any;\n }\n\n get ioClient() {\n const clientIo = (\n __: string,\n opt?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocketIpc => {\n const namespace = opt?.path || '/';\n return new MockSocketIpc(namespace);\n };\n return clientIo as any;\n }\n //#endregion\n}","//#region imports\nimport type { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { ManagerOptions, SocketOptions } from 'socket.io-client';\nimport { RealtimeModels__NS__ChangeOption, RealtimeModels__NS__EventHandler, RealtimeModels__NS__SubsManagerOpt } from '../realtime.models';\nimport { ServerOptions } from 'socket.io';\n//#endregion\n\n//#region mock server\nclass MockServer {\n static serverByUrl = new Map<string, MockServer>();\n static from(url: string): MockServer {\n if (!MockServer.serverByUrl.has(url)) {\n MockServer.serverByUrl.set(url, new MockServer(url));\n }\n return MockServer.serverByUrl.get(url);\n }\n\n get allServers() {\n return Array.from(MockServer.serverByUrl.values());\n }\n\n namespacesByName = new Map<string, MockNamespace>();\n\n //#region constructor\n constructor(public url: string) {\n MockServer.serverByUrl.set(url, this);\n }\n //#endregion\n\n //#region of\n of(namespace: string): MockNamespace {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(namespace, new MockNamespace(namespace, this));\n }\n return this.namespacesByName.get(namespace);\n }\n //#endregion\n\n //#region path\n path() {\n return this.url;\n }\n //#endregion\n}\n//#endregion\n\n//#region mock namespace\nclass MockNamespace {\n /**\n * All sockets connected to this namespace\n */\n public readonly allSocketsForNamespace = new Set<MockSocket>();\n /**\n * Rooms and their sockets\n */\n private socketByRoomName: {\n [roomName: string]: Set<MockSocket>;\n } = {};\n /**\n * Event handlers for this namespace\n */\n public namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n } = {};\n\n //#region constructor\n constructor(\n /**\n * unique namespace name\n */\n public name: string,\n public server: MockServer,\n ) {}\n //#endregion\n\n //#region on\n on(eventName: string, handler: RealtimeModels__NS__EventHandler): void {\n // console.log(`ON EVNET event \"${eventName}\"`);\n if (!this.namespaceEventHandlers[eventName]) {\n this.namespaceEventHandlers[eventName] =\n new Set<RealtimeModels__NS__EventHandler>();\n }\n\n if (!this.namespaceEventHandlers[eventName].has(handler)) {\n this.namespaceEventHandlers[eventName].add(handler);\n }\n\n // QUICK_FIX Emit connection event for backend\n // TODO make it in emit\n if (eventName === 'connection') {\n setTimeout(() => {\n this.emit('connection', this);\n });\n }\n }\n //#endregion\n\n //#region emit\n emit(event: string, ...args: any[]): void {\n this.allSocketsForNamespace?.forEach(socket => {\n socket.emit(event, ...args);\n });\n }\n //#endregion\n\n //#region connect\n connect(socket: MockSocket): void {\n this.allSocketsForNamespace.add(socket);\n socket.namespaceInstance = this;\n }\n //#endregion\n\n //#region to\n to(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, true);\n }\n //#endregion\n\n //#region to room\n in(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, false);\n }\n //#endregion\n\n //#region join room\n joinRoom(roomName: string, socket: MockSocket): void {\n if (!this.socketByRoomName[roomName]) {\n this.socketByRoomName[roomName] = new Set<MockSocket>();\n }\n this.socketByRoomName[roomName].add(socket);\n }\n //#endregion\n\n //#region leave room\n leaveRoom(roomName: string, socket: MockSocket): void {\n const roomSockets = this.socketByRoomName[roomName];\n if (roomSockets) {\n this.socketByRoomName[roomName].delete(socket);\n }\n }\n //#endregion\n\n //#region nsp + name\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n //#endregion\n\n path() {\n return this.name;\n }\n}\n//#endregion\n\n//#region room emitter\nclass RoomEmitter {\n //#region constructor\n constructor(\n private sockets: Set<MockSocket>,\n private includeSender: boolean = false,\n private sender: MockSocket = null, // TODO QUICK FIX how to include sender\n ) {}\n //#endregion\n\n //#region emit in room\n emit(event: string, ...args: any[]): void {\n // console.log(\n // `emit room emiter ${event} , this.sockets ${this.sockets.length}`,\n // );\n this.sockets?.forEach(socket => {\n // console.log(`emit event ${event} to socket ${socket.id}`);\n if (this.includeSender || socket !== this.sender) {\n socket.emit(event, ...args);\n }\n });\n }\n //#endregion\n}\n//#endregion\n\n//#region mock socket\nclass MockSocket {\n public namespaceInstance: MockNamespace;\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels__NS__EventHandler>;\n };\n get id() {\n return this.nsp.name;\n }\n\n //#region constructor\n constructor(\n public url: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ) {\n // @ts-ignore\n const [baseUrl, namespace] = [url, opts.path || '/'];\n // console.log({ url, baseUrl, namespace });\n const namespaceName = namespace || '/';\n\n // Look up the server instance from the registry\n const server = MockServer.from(url);\n\n const ns = server.of(namespaceName);\n ns.connect(this);\n }\n //#endregion\n\n //#region nsp + name\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.namespaceInstance?.name;\n },\n };\n }\n //#endregion\n\n //#region path\n path() {\n return this.namespaceInstance?.name;\n }\n //#endregion\n\n //#region on\n on(eventName: string, handler: RealtimeModels__NS__EventHandler): void {\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] =\n new Set<RealtimeModels__NS__EventHandler>();\n }\n this.socketEventHandlers[eventName].add(handler);\n\n // QUICK_FIX client initing itself\n if (eventName === 'connect') {\n setTimeout(() => {\n this.emit('connect');\n // this.namespaceInstance.emit('connection', this); @UNCOMMNENT\n });\n }\n }\n //#endregion\n\n //#region emit\n emit(eventName: string, ...args: any[]): void {\n eventName = eventName || '';\n\n if (eventName.includes(`:${Symbols__NS__REALTIME.KEYroomSubscribe}`)) {\n const room = args[0];\n this.join(room);\n } else if (eventName.includes(`:${Symbols__NS__REALTIME.KEYroomUnsubscribe}`)) {\n const room = args[0];\n this.leave(room);\n } else {\n // console.log('try to emit event (to server)', event);\n if (this.namespaceInstance) {\n const namespaceEventHandlers =\n this.namespaceInstance.namespaceEventHandlers[eventName] || [];\n\n // emit to namespace events\n for (const namespaceEventHandler of namespaceEventHandlers) {\n if (namespaceEventHandler) {\n namespaceEventHandler(...args);\n }\n }\n\n const allSocketsForNamespaceExceptCurrent = Array.from(\n this.namespaceInstance.allSocketsForNamespace.values(),\n ).filter(socket => socket !== this);\n\n // emit to all sockets in namespace\n for (const socket of allSocketsForNamespaceExceptCurrent) {\n const socketEventHandlers = socket.socketEventHandlers[eventName];\n for (const socketEventHandler of socketEventHandlers) {\n if (socketEventHandler) {\n socketEventHandler(...args);\n }\n }\n }\n\n // Emit to current socket\n const socketEventHandlers = this.socketEventHandlers[eventName] || [];\n for (const clientHandler of socketEventHandlers) {\n if (clientHandler) {\n clientHandler(...args);\n }\n }\n }\n }\n }\n //#endregion\n\n //#region join room\n join(roomName: string): void {\n this.namespaceInstance.joinRoom(roomName, this);\n }\n //#endregion\n\n //#region leave room\n leave(roomName: string): void {\n this.namespaceInstance.leaveRoom(roomName, this);\n }\n //#endregion\n}\n//#endregion\n\n/**\n * Purpose:\n * - browser-browser communication mock (in websql mode)\n */\nexport class RealtimeStrategyMock extends RealtimeStrategy {\n //#region toString\n toString(): string {\n return 'mock';\n }\n //#endregion\n\n //#region constructor\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n //#endregion\n\n //#region server & io\n ioServer(url: string, opt: ServerOptions) {\n const server = MockServer.from(url || this.ctx.uriOrigin);\n return server.of(opt?.path || '/') as any;\n }\n\n get ioClient() {\n const clientIo = (\n uri: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocket => {\n return new MockSocket(uri || this.ctx.uriOrigin, opts as any);\n };\n return clientIo as any;\n }\n //#endregion\n}","import { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\n/* */\n/* */\n \nimport { io, ManagerOptions, Socket, SocketOptions } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication\n * - backend-backend communication\n */\nexport class RealtimeStrategySocketIO extends RealtimeStrategy {\n toString(): string {\n return 'socket-io';\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n ioServer(...args) {\n/* */\n/* */\n return (void 0);\n }\n\n get ioClient() {\n return io;\n }\n}","//#region imports\nimport { Server } from 'socket.io';\nimport { DefaultEventsMap } from 'socket.io';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport { apiPrefix } from '../constants';\nimport type { EndpointContext } from '../endpoint-context';\n\nimport { RealtimeClient } from './realtime-client';\nimport { RealtimeServer } from './realtime-server';\nimport type { RealtimeStrategy } from './realtime-strategy';\nimport {\n RealtimeStrategyIpc,\n RealtimeStrategyMock,\n RealtimeStrategySocketIO,\n} from './realtime-strategy';\n\n//#endregion\n\n/**\n * Realtime class\n * - mock (when browser-browser)\n * - sockets (from socket io when backend-browser)\n * - ipc (when electron is used or between processes)\n * - webworker (when webworker is used in browser or nodejs)\n */\nexport class RealtimeCore {\n //#region fields\n readonly allHttpMethods = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'OPTIONS',\n 'HEAD',\n ];\n public readonly client: RealtimeClient;\n public readonly server: RealtimeServer;\n public readonly strategy: RealtimeStrategy;\n\n /**\n * global FE socket - only for established connection\n */\n public conectSocketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * socket for namespaces and rooms\n */\n public socketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * global BE socket - only for established connection\n */\n public connectSocketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n /**\n * socket for namespaces and rooms\n */\n public socketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n //#endregion\n\n //#region constructor\n constructor(public ctx: EndpointContext) {\n this.ctx = ctx;\n this.strategy = this.resolveStrategy();\n\n this.ctx.logRealtime &&\n console.log(`\n\n [ctx=${this.ctx.contextName}]\n mode = ${this.ctx.mode}\n realtime strategy = ${this.strategy}\n context type = ${this.ctx.contextType}\n\n `);\n if (UtilsOs__NS__isWebSQL) {\n this.server = new RealtimeServer(this as any);\n // console.log('DONE INITING SERVER');\n this.client = new RealtimeClient(this as any);\n // console.log('DONE INITING CLIENT');\n } else {\n this.client = new RealtimeClient(this as any);\n this.server = new RealtimeServer(this as any);\n }\n }\n //#endregion\n\n //#region methods & getters / resovle staraegy\n private resolveStrategy(): RealtimeStrategy {\n // console.log(`[taon] resolveStrategy for this.ctx.mode ${this.ctx.mode}`);\n if (\n this.ctx.mode === 'backend-frontend(websql)' ||\n this.ctx.mode === 'backend-frontend(websql-electron)'\n ) {\n // debugger\n return new RealtimeStrategyMock(this.ctx);\n }\n if (this.ctx.mode === 'backend-frontend(ipc-electron)') {\n return new RealtimeStrategyIpc(this.ctx);\n }\n // if (this.ctx.mode === 'backend-frontend(tcp+udp)') {\n // return new RealtimeStrategySocketIO(this.ctx);\n // }\n // if (this.ctx.mode === 'remote-backend(tcp+udp)') {\n // return new RealtimeStrategySocketIO(this.ctx);\n // }\n return new RealtimeStrategySocketIO(this.ctx);\n }\n //#endregion\n\n //#region path for\n public pathFor(namespace?: string) {\n let nsp = namespace ? namespace : '';\n nsp = nsp === '/' ? '' : nsp;\n const contextNameForCommunication = this.ctx.contextNameForCommunication;\n\n let prefix = `${apiPrefix}/${contextNameForCommunication}/udp`;\n if (UtilsOs__NS__isElectron) {\n prefix = ``;\n }\n const href =\n `${this.ctx.uriOrigin}${this.ctx.uriPathnameOrNothingIfRoot}` +\n `/${prefix}${prefix && nsp ? '-' + nsp : nsp}`;\n // console.log(`HREF: ${href}, nsp: ${nsp}`)\n return new URL(href) as URL;\n }\n //#endregion\n}","//#region imports\nimport type { Server } from 'http';\n/* */ \n/* */ \n\nimport axios from 'axios';\n/* */ \nimport type { Application } from 'express';\n// multer in taon middleware will do better job than express-fileupload\n// import * as fileUpload from 'express-fileupload'; // @backend\nimport type * as expressType from 'express';\nimport { JSON10 } from 'json10/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { decodeMappingForHeaderJson, encodeMapping, HttpResponse, Ng2RestAxiosRequestConfig, ResponseTypeAxios, RestErrorResponseWrapper, RestHeaders, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/browser-prod';\nimport { from, Subject } from 'rxjs';\n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \n/* */ \nimport {\n DataSource,\n DataSourceOptions,\n getMetadataArgsStorage,\n} from 'taon-typeorm/browser-prod';\nimport { path, requireDefault } from 'tnp-core/browser-prod';\nimport { config } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n/* */ \nimport { Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\nimport { crossPlatformPath } from 'tnp-core/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseClass } from './base-classes/base-class';\nimport type { TaonBaseController } from './base-classes/base-controller';\nimport { TaonBaseInjector } from './base-classes/base-injector';\nimport type { TaonBaseMiddleware } from './base-classes/base-middleware';\nimport type { TaonBaseMigration } from './base-classes/base-migration';\nimport { TaonBaseSubscriberForEntity } from './base-classes/base-subscriber-for-entity';\nimport type { ControllerConfig } from './config/controller-config';\nimport { MethodConfig } from './config/method-config';\nimport { ParamConfig } from './config/param-config';\nimport { apiPrefix } from './constants';\nimport { ContextDbMigrations } from './context-db-migrations';\nimport { createContext } from './create-context';\nimport { TaonEntityOptions } from './decorators/classes/entity-decorator';\nimport { TaonSubscriberOptions } from './decorators/classes/subscriber-decorator';\nimport { DITaonContainer } from './dependency-injection/di-container';\nimport type { ContextsEndpointStorage } from './endpoint-context-storage';\nimport { EntityProcess } from './entity-process';\nimport { getResponseValue } from './get-response-value';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport { TaonHelpers__NS__defaultType, TaonHelpers__NS__fillUpTo, TaonHelpers__NS__firstStringOrElemFromArray, TaonHelpers__NS__getExpressPath, TaonHelpers__NS__ipcKeyNameRequest, TaonHelpers__NS__ipcKeyNameResponse, TaonHelpers__NS__isGoodPath, TaonHelpers__NS__isPlainFileOrFolder, TaonHelpers__NS__parseJSONwithStringJSONs, TaonHelpers__NS__tryTransformParam, TaonHelpers__NS__websqlMocks } from './helpers/taon-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { RealtimeCore } from './realtime/realtime-core';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\n//#endregion\n\nlet bodyParser: typeof import('body-parser');\nlet cookieParser: typeof import('cookie-parser');\nlet cors: typeof import('cors');\nlet express: typeof import('express');\nlet methodOverride: typeof import('method-override');\nlet expressSession: typeof import('express-session');\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\nexport class EndpointContext {\n //#region fields\n\n //#region fields / use mariadb mysql in docker\n /**\n * JUST FOR TESTING PURPOSES\n */\n public readonly USE_MARIADB_MYSQL_IN_DOCKER: boolean = false;\n //#endregion\n\n //#region fields / flags\n disabledRealtime: boolean = false;\n\n /**\n * check whether context is inited\n * (with init() function )\n */\n public inited: boolean = false;\n //#endregion\n\n //#region fields / db migrations\n readonly dbMigrations = new ContextDbMigrations(this);\n //#endregion\n\n //#region fields / local instance obj symbol\n private readonly localInstaceObjSymbol = Symbol('localInstaceObjSymbol');\n //#endregion\n\n //#region fields / all instances of classes from context\n /**\n * all instances of classes from context\n * key is class name\n */\n public readonly allClassesInstances = {};\n //#endregion\n\n //#region fields / class instances by name\n private readonly classInstancesByNameObj = {};\n //#endregion\n\n //#region fields / obj with classes instances arr\n private readonly objWithClassesInstancesArr = {};\n //#endregion\n\n //#region fields / active routes\n public readonly activeRoutes: {\n expressPath: string;\n method: CoreModels__NS__HttpMethod;\n }[] = [];\n //#endregion\n\n //#region fields / typeorm repositories\n/* */\n/* */\n \n //#endregion\n\n //#region fields / source context\n get sourceContext(): EndpointContext | undefined {\n return this.cloneOptions?.sourceContext;\n }\n //#endregion\n\n //#region fields / skip writing server routes\n public readonly skipWritingServerRoutes: boolean = false;\n //#endregion\n\n //#region fields / types from contexts\n private injectableTypesfromContexts = [\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.SUBSCRIBER,\n Models__NS__ClassType.MIGRATION,\n ];\n //#endregion\n\n //#region fields / all types from contexts\n private allTypesfromContexts = [\n ...this.injectableTypesfromContexts,\n Models__NS__ClassType.ENTITY,\n ];\n //#endregion\n\n //#region fields / express app\n public expressApp: Application = {} as any;\n //#endregion\n\n //#region fields / server tcp udp\n public serverTcpUdp: Server;\n //#endregion\n\n //#region fields / database config\n databaseConfig?: Models__NS__DatabaseConfigTypeOrm;\n //#endregion\n\n //#region fields / mode\n mode: Models__NS__FrameworkMode;\n //#endregion\n\n //#region fields / only migration start\n readonly onlyMigrationRun?: boolean = false;\n\n readonly onlyMigrationRevertToTimestamp?: number = undefined;\n\n get isRunOrRevertOnlyMigrationAppStart(): boolean {\n return !!(this.onlyMigrationRun || this.onlyMigrationRevertToTimestamp);\n }\n //#endregion\n\n // //#region fields / session\n // session?: boolean; //Models.ISession;\n // //#endregion\n\n //#region fields / connection\n public connection: DataSource;\n //#endregion\n\n //#region fields / entities triggers\n private entitiesTriggers = {};\n //#endregion\n\n //#region fields / realtime\n private _realtime: RealtimeCore;\n\n get realtime(): RealtimeCore {\n if (!this._realtime) {\n throw new Error(`Please initialize context before accessing\n .realtime.client or realtime.server properties.\n\n `);\n }\n return this._realtime;\n }\n\n set realtime(v) {\n this._realtime = v;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n get realtimeClient() {\n return this.realtime.client;\n }\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n get realtimeServer() {\n return this.realtime.server;\n }\n //#endregion\n\n //#region fields / config\n /**\n * available after init()\n */\n public config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n //#endregion\n\n //#region fields / logs\n get logHttp(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).http;\n }\n return this.config?.logs === true;\n }\n\n get logRealtime(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).realtime;\n }\n return this.config?.logs === true;\n }\n\n get logFramework(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).framework;\n }\n return this.config?.logs === true;\n }\n\n get logRoutes(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).routes;\n }\n return this.config?.logs === true;\n }\n\n get logDb(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).db;\n }\n return this.config?.logs === true;\n }\n\n get logMigrations(): boolean {\n if (___NS__isObject(this.config?.logs)) {\n return !!(this.config.logs as Models__NS__ConnectionOptionsLogs).migrations;\n }\n return this.config?.logs === true;\n }\n //#endregion\n\n //#endregion\n\n //#region constructor\n /**\n * Inside docker there is not need for https secure server\n */\n public readonly isRunningInsideDocker: boolean = false;\n\n constructor(\n private originalConfig: Models__NS__ContextOptions<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >,\n private configFn: (\n env: any,\n ) => Models__NS__ContextOptions<any, any, any, any, any, any, any, any>,\n /**\n * (@default: false)\n * If TRUE context is NOT going to create db/express server/http endpoints\n * PURPOSE OF THIS PROPERTY\n * -> ONLY remote access from backend or frontend to specific backend\n */\n private readonly cloneOptions: Models__NS__TaonCtxCloneParams,\n ) {\n this.cloneOptions = this.cloneOptions || {};\n this.isRunningInsideDocker = UtilsOs__NS__isRunningInDocker();\n }\n //#endregion\n\n //#region methods & getters / init\n public async init(options?: {\n initFromRecrusiveContextResovle?: boolean;\n onlyMigrationRun?: boolean;\n onlyMigrationRevertToTimestamp?: number;\n }) {\n const {\n initFromRecrusiveContextResovle,\n onlyMigrationRun,\n onlyMigrationRevertToTimestamp,\n } = options || {}; // TODO use it ?\n\n this.inited = true;\n // @ts-ignore\n this.onlyMigrationRun = onlyMigrationRun;\n // @ts-ignore\n this.onlyMigrationRevertToTimestamp = onlyMigrationRevertToTimestamp;\n this.config = this.configFn({});\n if (___NS__isObject(this.config.database)) {\n this.config.database = Models__NS__DatabaseConfig.from(\n this.config.database as Models__NS__DatabaseConfig,\n ).databaseConfigTypeORM;\n }\n\n this.config.host = this.host === null ? void 0 : this.host;\n\n if (\n this.cloneOptions.overrideHost &&\n !this.cloneOptions.useAsRemoteContext\n ) {\n this.config.host = this.cloneOptions.overrideHost;\n }\n\n if (\n this.cloneOptions.overrideRemoteHost &&\n this.cloneOptions.useAsRemoteContext\n ) {\n this.config.host = this.cloneOptions.overrideRemoteHost;\n }\n\n if (\n this.config.host &&\n !this.config.host.startsWith('http://') &&\n !this.config.host.startsWith('https://')\n ) {\n Helpers__NS__throwError(\n `[taon-config] Your${this.host ? ' remote' : ''} 'host' must start with http:// or https://`,\n );\n }\n\n if (___NS__isUndefined(this.config.useIpcWhenElectron)) {\n this.config.useIpcWhenElectron = true;\n }\n // console.log(`config for ${this.contextName}`, this.config);\n\n //#region resolve if skipping writing server routes\n //@ts-expect-error overriding readonly\n this.skipWritingServerRoutes = ___NS__isBoolean(\n this.config.skipWritingServerRoutes,\n )\n ? this.config.skipWritingServerRoutes\n : false;\n //#endregion\n\n //#region resolve mode\n if (this.config.host) {\n this.mode = 'backend-frontend(tcp+udp)';\n/* */\n/* */\n \n }\n\n if (this.isRemoteHost) {\n this.mode = 'remote-backend(tcp+udp)';\n }\n\n // console.log(`\n\n // useIpcWhenElectron: ${this.config.useIpcWhenElectron}\n // UtilsOs__NS__isElectron: ${UtilsOs__NS__isElectron}\n\n // `)\n if (this.config.useIpcWhenElectron && UtilsOs__NS__isElectron) {\n if (UtilsOs__NS__isWebSQL) {\n this.mode = 'backend-frontend(websql-electron)';\n } else {\n this.mode = 'backend-frontend(ipc-electron)';\n }\n }\n\n // mode === undefined for TaonBaseContext => ok behavior\n // console.log(`Mode for BE/FE communication: ${this.mode}`);\n // if(!this.mode) {\n // console.log(this.config)\n // }\n\n if (!this.mode && !this.config.abstract) {\n const errMsg =\n `You need to provide host property or ` +\n `useIpcWhenElectron or mark it as abstract`;\n Helpers__NS__error(\n `[taon][Context=${this.contextName}]: ${errMsg}`,\n false,\n true,\n );\n/* */\n/* */\n \n }\n //#endregion\n\n //#region resolve database config\n if (this.config.database === true) {\n this.logFramework &&\n console.log(`\n\n ASSIGNING AUTO GENERATED DATABASE CONFIG\n\n `);\n this.databaseConfig = this.getAutoGeneratedConfig();\n } else if (___NS__isObject(this.config.database)) {\n this.logFramework &&\n console.log(`\n\n OVERRIDE DATABASE CONFIG FROM CONFIGURATION\n\n `);\n this.databaseConfig = this.getAutoGeneratedConfig();\n walk.Object(\n this.config.database,\n (value, lodashPath) => {\n if (___NS__isNil(value) || ___NS__isFunction(value) || ___NS__isObject(value)) {\n // skipping\n } else {\n this.logFramework &&\n console.info(\n `Overriding database config: ${lodashPath}=${value}`,\n );\n ___NS__set(this.databaseConfig, lodashPath, value);\n }\n },\n {\n walkGetters: false,\n },\n );\n }\n //#endregion\n\n //#region resolve session\n if (this.config.session) {\n // this.session = ___NS__cloneDeep(this.config.session);\n // const oneHour = 1000 * 60 * 60 * 1; // 24;\n // if (!this.session.cookieMaxAge) {\n // this.session.cookieMaxAge = oneHour;\n // }\n // serever and browser cookie authentication\n axios.defaults.withCredentials = true;\n }\n //#endregion\n\n //#region prepare & gather all classes recursively\n this.config.contexts = this.config.contexts || {};\n this.config.entities = this.config.entities || {};\n this.config.controllers = this.config.controllers || {};\n this.config.repositories = this.config.repositories || {};\n this.config.providers = this.config.providers || {};\n this.config.subscribers = this.config.subscribers || {};\n this.config.migrations = this.config.migrations || {};\n\n this.config.entities = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.ENTITY,\n )),\n ...this.config.entities,\n };\n\n this.config.controllers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.CONTROLLER,\n )),\n ...this.config.controllers,\n };\n\n this.config.providers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.PROVIDER,\n )),\n ...this.config.providers,\n };\n\n this.config.middlewares = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.MIDDLEWARE,\n )),\n ...this.config.middlewares,\n };\n\n this.config.subscribers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.SUBSCRIBER,\n )),\n ...this.config.subscribers,\n };\n\n this.config.repositories = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.REPOSITORY,\n )),\n ...this.config.repositories,\n };\n\n this.config.migrations = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models__NS__ClassType.MIGRATION,\n )),\n ...this.config.migrations,\n };\n\n // console.log(this.config);\n // debugger;\n //#endregion\n\n //#region prepare classes instances/functions clones\n this.config.controllers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.controllers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.CONTROLLER,\n });\n this.config.repositories = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.repositories,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.REPOSITORY,\n });\n this.config.providers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.providers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.PROVIDER,\n });\n this.config.middlewares = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.middlewares,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.MIDDLEWARE,\n });\n\n this.config.subscribers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.subscribers,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.SUBSCRIBER,\n });\n\n this.config.migrations = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.migrations,\n config: this.config,\n ctx: this,\n classType: Models__NS__ClassType.MIGRATION,\n });\n //#endregion\n\n //#region prepare instances\n for (const classTypeName of this.injectableTypesfromContexts) {\n this.classInstancesByNameObj[classTypeName] = {};\n this.objWithClassesInstancesArr[classTypeName] = [];\n }\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n await this.createInstances(\n this.config[Models__NS__ClassTypeKey[classTypeName]],\n classTypeName,\n );\n }\n //#endregion\n\n if (!this.isRunOrRevertOnlyMigrationAppStart) {\n //#region prepares server\n if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {\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 await this.initCustomClientMiddlewares();\n }\n //#endregion\n\n //#region prepare realtime\n if (!this.config.abstract) {\n this.disabledRealtime = this.config.disabledRealtime;\n if (!this.host) {\n throw `\n\n host is required for context initialization..\n (Or maybe you forgot mark ${this.config.contextName} context as abstract?)\n\n `;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n this.logRealtime &&\n Helpers__NS__info(\n `[ctx=${this.contextName}] Init Realtime for ${this.mode}`,\n );\n\n this.realtime = new RealtimeCore(this);\n }\n //#endregion\n }\n\n //#region show context info\n // console.log({ ref })\n if (this.config.abstract) {\n this.logFramework &&\n Helpers__NS__info(\n `[taon] Create abstract context: ${this.config.contextName}`,\n );\n } else {\n if (this.isRemoteHost) {\n this.logFramework &&\n Helpers__NS__info(\n `[taon] Create context for remote host: ${this.config.host}`,\n );\n } else {\n this.logFramework &&\n Helpers__NS__info(`[taon] Create context for host: ${this.config.host}`);\n }\n }\n //#endregion\n\n // update first exposed config\n Object.keys(this.config).forEach(key => {\n this.originalConfig[key] = this.config[key];\n });\n }\n //#endregion\n\n //#region methods & getters / get auto generated config\n private getAutoGeneratedConfig(): Models__NS__DatabaseConfigTypeOrm {\n this.logFramework &&\n console.log(`\n\n\n IS RUNNING IN DOCKER: ${this.isRunningInsideDocker}\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n get sqlLiteDbLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get electronDbLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n get kvDbJsonLocation(): string {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region methods & getters / start server\n async startServer(): Promise<void> {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / display express routes\n displayRoutes(app) {\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 //#endregion\n\n //#region methods & getters / mode allows database creation\n get modeAllowsDatabaseCreation() {\n return (\n this.mode === 'backend-frontend(tcp+udp)' ||\n this.mode === 'backend-frontend(websql)' ||\n this.mode === 'backend-frontend(ipc-electron)'\n );\n }\n //#endregion\n\n //#region methods & getters / clone class\n private cloneClassWithNewMetadata = <\n T extends { new (...args: any[]): any },\n >({\n TaonBaseClass,\n className,\n config,\n ctx,\n classType,\n }: {\n TaonBaseClass: T;\n className: string;\n config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models__NS__ClassType;\n }): T => {\n // Return a new class that extends the base class\n const cloneClass = () => {\n if (\n TaonBaseClass[Symbols__NS__fullClassNameStaticProperty] ===\n `${ctx.contextName}.${className}`\n ) {\n return TaonBaseClass;\n }\n return class extends TaonBaseClass {\n // static ['_'] = TaonBaseClass['_'];\n\n static [CoreModels__NS__OrignalClassKey] = TaonBaseClass;\n\n static [Symbols__NS__fullClassNameStaticProperty] = `${ctx.contextName}.${className}`;\n\n static [CoreModels__NS__ClassNameStaticProperty] = className;\n\n static [Symbols__NS__ctxInClassOrClassObj] = ctx;\n\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n static __getFullPathForClass__(arr = []) {\n const name = this[Symbols__NS__fullClassNameStaticProperty];\n arr.push(name);\n\n if (\n this[CoreModels__NS__OrignalClassKey] &&\n (\n this[CoreModels__NS__OrignalClassKey] as any as {\n __getFullPathForClass__: any;\n }\n ).__getFullPathForClass__\n ) {\n (\n this[CoreModels__NS__OrignalClassKey] as any as {\n __getFullPathForClass__: any;\n }\n ).__getFullPathForClass__(arr);\n }\n return arr.join('/');\n }\n\n static get fullPathForClass(): string {\n return this.__getFullPathForClass__();\n }\n\n [Symbols__NS__ctxInClassOrClassObj] = ctx;\n // You can override prototype properties or methods here if needed\n // static properties override allowed\n };\n };\n\n const cloneClassFunction = cloneClass();\n\n //#region gather all instances for all contexts\n // TODO this is not needed anymore - for typeorm I use normal entities\n // this thinng belowe is nice for debugging purpose\n // if (___NS__isUndefined(cloneClassFunction[Symbols__NS__orignalClassClonesObj])) {\n // cloneClassFunction[Symbols__NS__orignalClassClonesObj] = {};\n // }\n // if (___NS__isUndefined(TaonBaseClass[Symbols__NS__orignalClassClonesObj])) {\n // TaonBaseClass[Symbols__NS__orignalClassClonesObj] = {};\n // }\n // const all = {\n // ...TaonBaseClass[Symbols__NS__orignalClassClonesObj],\n // ...cloneClassFunction[Symbols__NS__orignalClassClonesObj],\n // };\n // all[ctx.contextName] = cloneClassFunction;\n // cloneClassFunction[Symbols__NS__orignalClassClonesObj] = all;\n // TaonBaseClass[Symbols__NS__orignalClassClonesObj] = all;\n //#endregion\n\n return cloneClassFunction;\n };\n\n //#endregion\n\n //#region methods & getters / clone classes obj with new metadata\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n private cloneClassesObjWithNewMetadata = ({\n classesInput,\n config,\n ctx,\n classType,\n }: {\n classesInput: any;\n config: Models__NS__ContextOptions<any, any, any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models__NS__ClassType;\n }) => {\n const classes = {};\n // console.log(Object.keys(classesInput))\n for (const key of Object.keys(classesInput || {})) {\n const TaonBaseClass = classesInput[key];\n\n if (!TaonBaseClass) {\n Helpers__NS__error(`Class ${key} is not defined in context ${ctx.contextName}\n\n Please check if you have correct import in context file\n\n `);\n }\n\n var className = Reflect.getMetadata(\n Symbols__NS__metadata.className,\n TaonBaseClass,\n );\n\n // console.log('Metadata className', className, TaonBaseClass);\n // if (!className) {\n // console.warn(`Please provide className for ${TaonBaseClass.name} class`);\n // }\n className = className || key;\n TaonBaseClass[CoreModels__NS__ClassNameStaticProperty] = className;\n\n const clonedClass = this.cloneClassWithNewMetadata({\n TaonBaseClass,\n className,\n config,\n ctx,\n classType,\n });\n classes[className] = clonedClass;\n }\n return classes;\n };\n //#endregion\n\n //#region methods & getters / get recursive classes from contexts\n private async getRecrusiveClassesfromContextsObj(\n classType: Models__NS__ClassType,\n ) {\n const arr = await this.getRecrusiveClassesfromContexts(classType);\n return arr.reduce((acc, c) => {\n acc[ClassHelpers__NS__getName(c)] = c;\n return acc;\n }, {});\n }\n\n private async getRecrusiveClassesfromContexts(\n classType: Models__NS__ClassType,\n arr = [],\n ) {\n const contexts = Object.values(this.config.contexts || {}) as ReturnType<\n typeof createContext\n >[];\n // console.log({\n // contexts,\n // });\n for (const ctx of contexts) {\n // console.log(`STARTING ${ctx.contextName}`);\n const ref = await ctx.__ref();\n // console.log(`CTX FROM ${ctx.contextName}`, ref.contextName);\n const classesInput = ref.getClassFunBy(classType);\n // console.log(`${ref.contextName} - ${classType}`, { classesInput });\n\n const clonedClasses = Object.values(\n this.cloneClassesObjWithNewMetadata({\n classesInput,\n config: this.config,\n ctx: this,\n classType,\n }),\n );\n // console.log(`${classType} clonedClasses`, clonedClasses);\n clonedClasses.forEach(c => arr.push(c));\n\n await ref.getRecrusiveClassesfromContexts(classType, arr);\n }\n return arr as Function[];\n }\n //#endregion\n\n //#region methods & getters / get class instances by class type\n getClassInstanceObjBy(classType: Models__NS__ClassType): any {\n return this.classInstancesByNameObj[classType];\n }\n //#endregion\n\n //#region methods & getters / get class instances arr\n private getClassesInstancesArrBy(classType: Models__NS__ClassType): any[] {\n return this.objWithClassesInstancesArr[classType];\n }\n //#endregion\n\n //#region methods & getters / inject\n inject<T>(\n ctor: new (...args: any[]) => T,\n options: {\n localInstance?: boolean;\n contextClassInstance?: TaonBaseInjector;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n parentInstanceThatWillGetInjectedStuff: object;\n },\n ): T {\n const className = ClassHelpers__NS__getName(ctor);\n\n const locaInstanceConstructorArgs =\n options.locaInstanceConstructorArgs || [];\n\n if (this.isCLassType(Models__NS__ClassType.REPOSITORY, ctor)) {\n options.localInstance = true;\n }\n\n if (options?.localInstance) {\n const ctxClassFn = this.getClassFunByClassName(className);\n let entityName: string = '';\n\n // entity thing is only for repositories local repositories\n // if (className === 'TaonBaseRepository') {\n const entityFn = ___NS__first(locaInstanceConstructorArgs);\n const entity = entityFn && entityFn();\n entityName = (entity && ClassHelpers__NS__getName(entity)) || '';\n // console.log(`entityName `, entityName);\n // }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n if (!options.contextClassInstance[this.localInstaceObjSymbol]) {\n options.contextClassInstance[this.localInstaceObjSymbol] = {};\n }\n const instanceKey = className + (entityName ? `.${entityName}` : '');\n\n const existed =\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey];\n\n if (existed) {\n // console.log(\n // `EXISTED ${ClassHelpers__NS__getName(options.parentInstanceThatWillGetInjectedStuff)} Inject ${className} instanceKey \"${instanceKey}\"`,\n // );\n return existed;\n }\n\n // console.log(\n // `NEW ${ClassHelpers__NS__getName(options.parentInstanceThatWillGetInjectedStuff)} Inject ${className} instanceKey \"${instanceKey}\"`,\n // );\n\n if (!ctxClassFn) {\n throw new Error(`Not able to inject \"${className}\" inside context \"${this.contextName}\"\n\n Make sure they share the same context or import context where \"${className}\" is defined.\n\n `);\n }\n\n const injectedInstance = new (ctxClassFn as any)(\n ...locaInstanceConstructorArgs,\n );\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey] =\n injectedInstance;\n // console.log(`injectedInstance `, existed)\n return injectedInstance;\n }\n\n const contextScopeInstance = this.allClassesInstances[className];\n // if (className === 'TopicController') {\n // debugger;\n // }\n return contextScopeInstance;\n }\n\n /**\n * alias for inject\n */\n getInstanceBy<T>(ctor: new (...args: any[]) => T): T {\n // if (!!this.__contextForControllerInstanceAccess) {\n // const className = ClassHelpers__NS__getName(ctor);\n // const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n\n // // TODO QUICK_FIX cache controllers\n // for (const ctrl of allControllers) {\n // if (ClassHelpers__NS__getName(ctrl) === className) {\n // // console.log('injecting from contextForControllerInstanceAcesss', className);\n // return this.__contextForControllerInstanceAccess.inject(ctor, {\n // localInstance: false,\n // });\n // }\n // }\n // }\n\n return this.inject(ctor, {\n localInstance: false,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n }\n //#endregion\n\n //#region methods & getters / check if context initialized\n checkIfContextInitialized() {\n if (___NS__isUndefined(this.config)) {\n throw new Error(`Please check if your context has been initialized.\n\n // ...\n await Context.initialize();\n // ...\n\n\n `);\n }\n }\n //#endregion\n\n //#region methods & getters / get class function by class type name\n getClassFunBy(classType: Models__NS__ClassType) {\n this.checkIfContextInitialized();\n switch (classType) {\n case Models__NS__ClassType.CONTROLLER:\n return this.config.controllers;\n case Models__NS__ClassType.ENTITY:\n return this.config.entities;\n case Models__NS__ClassType.PROVIDER:\n return this.config.providers;\n case Models__NS__ClassType.MIDDLEWARE:\n return this.config.middlewares;\n case Models__NS__ClassType.REPOSITORY:\n return this.config.repositories;\n case Models__NS__ClassType.SUBSCRIBER:\n return this.config.subscribers;\n case Models__NS__ClassType.MIGRATION:\n return this.config.migrations;\n }\n }\n\n isCLassType(classType: Models__NS__ClassType, classFn: Function): boolean {\n return !!this.getClassFunBy(classType)[ClassHelpers__NS__getName(classFn)];\n }\n\n /**\n * Only for injectable types\n * Only for classType: CONTROLLER, REPOSITORY, PROVIDER, MIDDLEWARES\n */\n getClassFunByClassName(className: string): Function {\n for (const classTypeName of this.allTypesfromContexts) {\n const classesForInjectableType =\n this.config[Models__NS__ClassTypeKey[classTypeName]];\n\n if (classesForInjectableType[className]) {\n return classesForInjectableType[className];\n }\n }\n }\n\n getClassFunByClass(classFunction: Function): Function {\n const className = ClassHelpers__NS__getName(classFunction);\n return this.getClassFunByClassName(className);\n }\n\n getClassFunByArr(classType: Models__NS__ClassType) {\n return Object.values(this.getClassFunBy(classType) || {}) as Function[];\n }\n //#endregion\n\n //#region methods & getters / create class instances\n private async createInstances(classes: any, classType: Models__NS__ClassType) {\n // const recrusiveValuesFromContext =\n // await this.getRecrusiveClassesfromContexts(classType);\n // console.log(this.config.contexts);\n // console.log('recrusiveValuesFromContext', recrusiveValuesFromContext);\n\n for (const classFn of [\n // ...recrusiveValuesFromContext,\n ...Object.values(classes),\n ]) {\n const instance = DITaonContainer.resolve(classFn as any) as any;\n const classInstancesByNameObj = this.classInstancesByNameObj[classType];\n const className = ClassHelpers__NS__getName(classFn);\n // console.log({ classFn, classType, instance, place, className, 'classInstancesByNameObj': this.classInstancesByNameObj });\n classInstancesByNameObj[className] = instance;\n // update config\n this.config[Models__NS__ClassTypeKey[classType]][className] = classFn;\n this.objWithClassesInstancesArr[classType].push(instance);\n this.allClassesInstances[className] = instance;\n }\n }\n //#endregion\n\n //#region methods & getters / init classes\n async initClasses(): Promise<void> {\n if (this.isRemoteHost) {\n return;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n for (const classTypeName of [\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.ENTITY,\n Models__NS__ClassType.MIGRATION,\n ]) {\n //#region init class static _ property\n for (const classFun of this.getClassFunByArr(classTypeName) as any[]) {\n if (___NS__isFunction(classFun._)) {\n await classFun._();\n }\n }\n //#endregion\n }\n\n for (const classTypeName of [\n Models__NS__ClassType.MIDDLEWARE,\n Models__NS__ClassType.PROVIDER,\n Models__NS__ClassType.REPOSITORY,\n Models__NS__ClassType.CONTROLLER,\n Models__NS__ClassType.MIGRATION,\n ]) {\n //#region init providers, repositories _ property\n // Helpers__NS__taskStarted(\n // `[taon] REINITING _ INS FN ${classTypeName} ${this.contextName} STARTED`,\n // );\n for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {\n if (___NS__isFunction(ctrl._)) {\n await ctrl._();\n }\n }\n // Helpers__NS__taskStarted(\n // `[taon] REINITING _ INS FN ${classTypeName} ${this.contextName} DONE`,\n // );\n //#endregion\n }\n }\n //#endregion\n\n //#region methods & getters / is active on\n isActiveOn(classInstance: object): boolean {\n let contextRef: EndpointContext =\n classInstance[Symbols__NS__ctxInClassOrClassObj];\n return this === contextRef;\n }\n //#endregion\n\n //#region methods & getters / uri\n get frontendHostUri() {\n const url = this.config?.frontendHost?.startsWith('http')\n ? this.config.frontendHost\n : `${globalThis?.location?.protocol || 'http:'}//${\n this.config?.frontendHost\n }`;\n const uri = new URL(url.replace(/\\/$/, ''));\n return uri;\n }\n\n get uri(): URL | undefined {\n const url = this.host ? new URL(this.host) : void 0;\n return url;\n }\n //#endregion\n\n //#region methods & getters / host uri protocol\n get uriProtocol(): string | undefined {\n return this.uri?.protocol;\n }\n //#endregion\n\n //#region methods & getters / host uri origin\n /**\n * Examples\n * http://localhost:3000\n * https://localhost (from localhost:80) *\n */\n get uriOrigin(): string | undefined {\n return this.uri?.origin;\n }\n //#endregion\n\n //#region methods & getters / host uri pathname\n /**\n * Exampels\n * http://localhost:3000/path/to/somewhere\n * https://localhost/path/to/somewhere (from localhost:80)\n */\n // get uriOriginWithPathname(): string | undefined {\n // return this.uri?.origin\n // ? this.uri?.origin + this.uriPathnameOrNothingIfRoot.replace(/\\/$/, '')\n // : undefined;\n // }\n\n get uriPathname(): string | undefined {\n return this.uri?.pathname;\n }\n //#endregion\n\n //#region methods & getters / uri pathname or nothing if root\n /**\n * Examples\n * http://localhost:3000/path/to/somewhere -> '/path/to/somewhere'\n * http://localhost:3000 -> '' #\n * https://localhost/path/to/ -> '/path/to/somewhere' # remove last slash\n */\n get uriPathnameOrNothingIfRoot(): string {\n const isNonRootProperPathName =\n this.uri?.pathname && this.uri.pathname !== '/';\n return isNonRootProperPathName ? this.uri.pathname.replace(/\\/$/, '') : '';\n }\n //#endregion\n\n //#region methods & getters / port from uri\n get uriPort(): string | undefined {\n if (!this.uri?.origin?.includes('localhost')) {\n return this.config?.hostPortNumber?.toString();\n }\n return this.uri?.port;\n }\n // TODO do i need 2 getters for port?\n\n /**\n * Port from uri as number\n * @returns {Number | undefined}\n */\n get port(): Number | undefined {\n return this.uri?.port ? Number(this.uriPort) : undefined;\n }\n //#endregion\n\n //#region methods & getters / is https server\n get isHttpServer() {\n return this.uriProtocol === 'https:';\n }\n //#endregion\n\n //#region methods & getters / is remote host\n /**\n * Check if context is for remote only\n */\n public get isRemoteHost(): boolean {\n return !!this.cloneOptions?.useAsRemoteContext;\n }\n //#endregion\n\n //#region methods & getters / context name\n /**\n * ipc/udp needs this\n */\n public get contextName(): string {\n // console.log(this.originalConfig);\n return this.config?.contextName || this.originalConfig?.contextName;\n }\n //#endregion\n\n //#region methods & getters / context name for communication\n /**\n * ipc/udp needs this\n */\n public get contextNameForCommunication(): string {\n let contextName = this.contextName;\n if (this.isRemoteHost) {\n if (this.sourceContext?.contextName) {\n contextName = this.sourceContext?.contextName;\n } else {\n // console.log(\n // `CANT GET SOURCE CONTEXT NAME FOR REMOTE CONTEXT ${this.contextName}`,\n // );\n }\n }\n return contextName;\n }\n //#endregion\n\n //#region methods & getters / get context type\n /**\n * Check context type\n */\n public get contextType(): 'normal' | 'remote' | 'abstract' | 'invalid' {\n if (this.config.abstract) {\n return 'abstract';\n }\n if (this.host) {\n return this.isRemoteHost ? 'remote' : 'normal';\n }\n return 'invalid';\n }\n //#endregion\n\n //#region methods & getters / current working directory\n public get cwd(): string {\n return this.config.cwd || process.cwd();\n }\n //#endregion\n\n //#region methods & getters / active context\n public get activeContext(): string | null {\n return this.config.activeContext || null;\n }\n //#endregion\n\n //#region methods & getters / app id\n public get appId(): string {\n return this.config.appId;\n }\n //#endregion\n\n //#region methods & getters / public assets\n public get publicAssets() {\n return this.config?.publicAssets || [];\n }\n //#endregion\n\n //#region methods & getters / is production mode\n get isProductionMode() {\n return this.config.productionMode;\n }\n //#endregion\n\n //#region methods & getters / host\n get host(): string | undefined {\n return this.config.host;\n }\n //#endregion\n\n //#region methods & getters / origin\n get origin(): string | undefined {\n return this.uri?.origin;\n }\n //#endregion\n\n //#region methods & getters / init subscribers\n /**\n * init typeorm subscribers\n */\n async initSubscribers() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init entities\n async initEntities() {\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 //#endregion\n\n //#region methods & getters / destroy\n async destroy(): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init connection\n async initDatabaseConnection(): Promise<void> {\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/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region methods & getters / initialize metadata\n\n //#region methods & getters / update class calculate path\n private updateCalculatedPathsForControllers(\n rawConfigs: ControllerConfig[],\n classConfig: ControllerConfig,\n controllerClassFn: Function,\n ): void {\n const parentsCalculatedPath = ___NS__slice(rawConfigs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers__NS__isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n const contextNameForCommunication = this.contextNameForCommunication;\n\n if (TaonHelpers__NS__isGoodPath(classConfig.path)) {\n classConfig.calculatedPath = classConfig.path;\n } else {\n classConfig.calculatedPath = (\n `${this.uriPathnameOrNothingIfRoot}` +\n `/${apiPrefix}/${contextNameForCommunication}/tcp${parentsCalculatedPath}/` +\n `${ClassHelpers__NS__getName(controllerClassFn)}`\n )\n .replace(/\\/\\//g, '/')\n .split('/')\n .reduce((acc, bc) => {\n return ___NS__last(acc) === bc ? acc : [...acc, bc];\n }, [])\n .join('/');\n }\n\n // console.log('calculatedPath', classConfig.calculatedPath);\n }\n //#endregion\n\n //#region methods & getters / dedupe class configs\n private mergeControllerMethodsConfigs(\n rawConfigs: ControllerConfig[],\n classConfig: ControllerConfig,\n controllerClassFn: Function,\n ): void {\n const currentControllerMethodsConfig = classConfig.methods;\n\n ___NS__slice(rawConfigs, 1).forEach(bc => {\n const parentControllerMethods = ___NS__cloneDeep(bc.methods);\n\n for (const methodsName in parentControllerMethods) {\n if (parentControllerMethods.hasOwnProperty(methodsName)) {\n if (!currentControllerMethodsConfig[methodsName]) {\n //#region add non existed method\n const methodConfig = parentControllerMethods[methodsName];\n currentControllerMethodsConfig[methodsName] = methodConfig;\n //#endregion\n }\n }\n }\n });\n }\n\n //#endregion\n async initControllersHook(\n ctxStorage: ContextsEndpointStorage,\n ): Promise<void> {\n if (this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n for (const controllerClassFn of allControllers) {\n const instance = this.getInstanceBy(\n controllerClassFn as any,\n ) as TaonBaseController;\n if (___NS__isFunction(instance.afterAllCtxInited)) {\n await instance.afterAllCtxInited({ ctxStorage });\n }\n }\n }\n\n async initControllers(): Promise<void> {\n if (this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n const allControllers = this.getClassFunByArr(Models__NS__ClassType.CONTROLLER);\n // debugger\n // console.log('allControllers', allControllers);\n for (const controllerClassFn of allControllers) {\n // console.log(ClassHelpers__NS__getClassConfig(controllerClassFn));\n\n // const controllerName = ClassHelpers__NS__getName(controllerClassFn);\n\n // console.log(\n // `for ${controllerName}`,\n // ClassHelpers__NS__getClassConfig(controllerClassFn),\n // );\n\n controllerClassFn[Symbols__NS__classMethodsNames] =\n ClassHelpers__NS__getMethodsNames(controllerClassFn);\n\n const rawConfigs = ClassHelpers__NS__getControllerConfigs(controllerClassFn);\n // console.log(controllerName, { rawConfigs });\n // console.log(`Class config for ${ClassHelpers__NS__getName(controllerClassFn)}`, configs)\n const classConfig: ControllerConfig = rawConfigs[0];\n\n this.updateCalculatedPathsForControllers(\n rawConfigs,\n classConfig,\n controllerClassFn,\n );\n this.mergeControllerMethodsConfigs(\n rawConfigs,\n classConfig,\n controllerClassFn,\n );\n\n //#region combine middlewares from controllers\n classConfig.calculatedMiddlewaresControllerObj = {};\n [...rawConfigs].reverse().forEach(rc => {\n if (___NS__isFunction(rc.middlewares)) {\n classConfig.calculatedMiddlewaresControllerObj = rc.middlewares({\n parentMiddlewares: classConfig.calculatedMiddlewaresControllerObj,\n className(middlewareClass) {\n return ClassHelpers__NS__getName(controllerClassFn);\n },\n });\n }\n });\n //#endregion\n\n //#region group start\n/* */\n/* */\n \n this.logHttp &&\n console.groupCollapsed(\n `[taon][express-server] routes [${classConfig.className}]`,\n );\n/* */\n/* */\n \n //#endregion\n\n //#region init client or server methods\n const methodNames = Object.keys(classConfig.methods);\n for (const methodName of methodNames) {\n const methodConfig: Partial<MethodConfig> =\n classConfig.methods[methodName];\n\n //#region combine all class methods middlewares\n let calculatedMiddlewaresMethodObj = {};\n\n [...rawConfigs].reverse().forEach(rc => {\n if (rc.methods[methodName]) {\n const parentMethodConfig = rc.methods[methodName];\n\n if (___NS__isFunction(parentMethodConfig.middlewares)) {\n calculatedMiddlewaresMethodObj = parentMethodConfig.middlewares({\n parentMiddlewares: calculatedMiddlewaresMethodObj,\n className(middlewareClass) {\n return ClassHelpers__NS__getName(controllerClassFn);\n },\n });\n }\n }\n });\n\n // add class middlewares to method middlewares\n methodConfig.calculatedMiddlewaresMethodObj = {\n ...calculatedMiddlewaresMethodObj,\n ...classConfig.calculatedMiddlewaresControllerObj,\n };\n methodConfig.calculatedMiddlewares = Object.values(\n methodConfig.calculatedMiddlewaresMethodObj || {},\n );\n //#endregion\n\n // methodConfig.calculatedMiddlewares = TODO\n\n //#region initialized method express path\n const httpMethodType: CoreModels__NS__HttpMethod = methodConfig.type;\n\n // this is quick fix - in docker global path should not be used\n const globalPathPart =\n this.isRunningInsideDocker ||\n !this.frontendHostUri?.origin?.includes('localhost') // fe with domain -> is in docker\n ? `${this.uriPathnameOrNothingIfRoot.replace(\n /\\/$/,\n '',\n )}/${apiPrefix}/${this.contextName}`.replace(/\\/\\//, '/')\n : '';\n const expressPath = methodConfig.global\n ? `${globalPathPart}/${methodConfig.path?.replace(\n /\\/$/,\n '',\n )}`.replace(/\\/\\//, '/')\n : TaonHelpers__NS__getExpressPath(classConfig, methodConfig);\n\n //#endregion\n\n //#region init server\n // console.log({ expressPath });\n if (UtilsOs__NS__isNode || UtilsOs__NS__isWebSQL) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n //#endregion\n\n //#region init client\n const shouldInitClient =\n UtilsOs__NS__isBrowser || this.isRemoteHost || UtilsOs__NS__isWebSQL;\n // console.log('shouldInitClient', shouldInitClient);\n if (shouldInitClient) {\n // console.log(\n // 'initClient',\n // ClassHelpers__NS__getFullInternalName(controllerClassFn),\n // type,\n // methodConfig,\n // expressPath,\n // );\n await this.initClient(\n controllerClassFn,\n httpMethodType,\n methodConfig as any,\n expressPath,\n );\n }\n //#endregion\n }\n //#endregion\n\n //#region group end\n/* */\n/* */\n \n this.logHttp && console.groupEnd();\n/* */\n/* */\n \n //#endregion\n }\n }\n //#endregion\n\n //#region methods & getters / write active routes\n public writeActiveRoutes(): void {\n if (this.isRemoteHost || this.isRunOrRevertOnlyMigrationAppStart) {\n return;\n }\n // const contexts: EndpointContext[] = [this];\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 //#endregion\n\n //#region methods & getters / middlewares\n public get middlewares(): Models__NS__MiddlewareType[] {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init middlewares\n\n private async initCustomClientMiddlewares(): Promise<void> {\n const middlewares = this.getClassesInstancesArrBy(\n Models__NS__ClassType.MIDDLEWARE,\n )\n .map(f => f as TaonBaseMiddleware)\n .filter(f => ___NS__isFunction(f.interceptClient));\n\n middlewares.forEach(middlewareInstanceName => {\n const contextName = this.contextName;\n const interceptorName = `${contextName}-${ClassHelpers__NS__getName(\n middlewareInstanceName,\n )}`;\n Resource__NS__globalInterceptors.set(interceptorName, {\n intercept: ({ req, next }) => {\n const url = new URL(req.url);\n if (\n url.pathname.startsWith(\n `${this.uriPathnameOrNothingIfRoot}/${apiPrefix}/${contextName}/`,\n )\n ) {\n // console.log('intercepting', url.pathname, req);\n return middlewareInstanceName.interceptClient({\n req,\n next,\n });\n }\n return next.handle(req);\n },\n });\n });\n }\n\n private async initCustomBackendMiddlewares(): Promise<void> {\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 private async initBackendMiddlewares(): Promise<void> {\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 //#endregion\n\n //#region methods & getters / init methods node\n private initServer(\n //#region parameters\n httpMethodType: CoreModels__NS__HttpMethod,\n methodConfig: Partial<MethodConfig>,\n classConfig: ControllerConfig,\n expressPath: string,\n target: Function,\n //#endregion\n ): { expressPath: string; method: CoreModels__NS__HttpMethod } {\n //#region resolve variables\n // console.log(\n // `CLIENT: expressPath: \"${expressPath}\" interceptor for method: ${methodConfig.calculatedMiddlewares.length}`,\n // );\n\n const middlewareHandlers = methodConfig.calculatedMiddlewares\n .map(middlewareClassFun => {\n const middlewareInstance: TaonBaseMiddleware = this.getInstanceBy(\n middlewareClassFun as any,\n );\n if (\n middlewareInstance &&\n ___NS__isFunction(middlewareInstance.interceptServerMethod)\n ) {\n const middlewareFn = ClassHelpers__NS__asyncHandler(\n async (\n req: expressType.Request,\n res: expressType.Response,\n next: expressType.NextFunction,\n ) => {\n await middlewareInstance.interceptServerMethod(\n {\n req,\n res,\n next,\n },\n {\n methodName: methodConfig.methodName,\n expressPath,\n httpRequestType: methodConfig.type,\n },\n );\n },\n );\n return middlewareFn;\n }\n })\n .filter(f => !!f) as expressType.RequestHandler[];\n\n // const url = this.uri;\n\n //#region get result\n const getResult = async (resolvedParams, req, res) => {\n const response: Models__NS__Http__NS__Response<any> =\n methodConfig.descriptor.value.apply(\n /**\n * Context for method @GET,@PUT etc.\n */\n this.getInstanceBy(target as any),\n /**\n * Params for method @GET, @PUT etc.\n */\n resolvedParams,\n );\n let result = await getResponseValue(response, { req, res });\n return result;\n };\n //#endregion\n\n // console.log(`BACKEND: expressPath: \"${expressPath}\" `);\n //#endregion\n\n if (UtilsOs__NS__isElectron) {\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 if (!this.isRemoteHost) {\n //#region apply dummy websql express routers\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n //#endregion\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/* */\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 return {\n expressPath: expressPath,\n method: methodConfig.type,\n };\n }\n //#endregion\n\n //#region methods & getters / send error\n protected sendError(\n res: expressType.Response,\n error: unknown,\n req: expressType.Request,\n expressPath: string,\n ): void {\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 return (void 0);\n }\n //#endregion\n\n //#region methods & getters / init client\n /**\n * client can be browser or nodejs (when remote host)\n */\n private async initClient(\n target: Function,\n httpRequestType: CoreModels__NS__HttpMethod,\n methodConfig: Partial<MethodConfig>, // Models.Http.Rest.MethodConfig,\n expressPath: string,\n ): Promise<void> {\n const ctx = this;\n\n // console.log(\n // `CLIENT: expressPath: \"${expressPath}\" interceptor for method: ${methodConfig.calculatedMiddlewares?.length} `,\n // );\n\n //#region init middlewares\n const middlewares = methodConfig.calculatedMiddlewares;\n const middlewaresInstances = middlewares\n .map(f => this.getInstanceBy(f as any) as TaonBaseMiddleware)\n .filter(f => ___NS__isFunction(f.interceptClientMethod));\n\n middlewaresInstances.forEach(instance => {\n const middlewareName = ClassHelpers__NS__getName(instance);\n // middlewareName - only needed for inheritace and uniqness of interceptors\n const interceptorKey = `${middlewareName}-${methodConfig.type?.toUpperCase()}-${expressPath}`;\n Resource__NS__methodsInterceptors.set(interceptorKey, {\n intercept: ({ req, next }) => {\n return instance.interceptClientMethod(\n {\n req,\n next,\n },\n {\n methodName: methodConfig.methodName,\n expressPath,\n httpRequestType: httpRequestType,\n },\n );\n },\n });\n });\n //#endregion\n\n // : { received: any; /* Rest<any, any> */ }\n // this.logHttp &&\n // console.log(`${httpRequestType?.toUpperCase()} ${expressPath} `);\n // console.log('INITING', methodConfig); // TODO inject in static\n //#region resolve storage\n // TODO not a good idea\n const storage = globalThis;\n //#endregion\n\n const orgMethods = target.prototype[methodConfig.methodName];\n\n //#region handle electron ipc request\n\n if (UtilsOs__NS__isElectron) {\n const ipcRenderer = (window as any).require('electron').ipcRenderer;\n target.prototype[methodConfig.methodName] = function (...args) {\n const received = new Promise(async (resolve, reject) => {\n const headers = {};\n const { request, response } = TaonHelpers__NS__websqlMocks(headers);\n\n //#region @browser\n ipcRenderer.once(\n TaonHelpers__NS__ipcKeyNameResponse(target, methodConfig, expressPath),\n (event, responseData) => {\n let res: any = responseData;\n console.log({ responseData });\n try {\n const body = res;\n const responseStrinOrBlob: any =\n Helpers__NS__isBlob(body) || ___NS__isString(body)\n ? body\n : JSON.stringify(body);\n res = new HttpResponse(\n `${ctx.uriOrigin}${\n '' // TODO express path\n }${methodConfig.path} `,\n methodConfig.type,\n responseStrinOrBlob,\n RestHeaders.from(headers),\n 200,\n {\n // responseMapping: {\n // // entity: ()=> TODO for electron\n // },\n },\n false,\n );\n\n resolve(res);\n } catch (error) {\n console.error(error);\n reject(error);\n }\n },\n );\n ipcRenderer.send(\n TaonHelpers__NS__ipcKeyNameRequest(target, methodConfig, expressPath),\n args,\n );\n //#endregion\n });\n received['observable'] = from(received);\n return {\n received,\n request(axiosConfig: Ng2RestAxiosRequestConfig) {\n return received;\n },\n } as Models__NS__Http__NS__ClientAction<any>;\n };\n return;\n }\n //#endregion\n\n //#region handling web sql request\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/* */\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 //#endregion\n\n //#region handle normal request\n\n target.prototype[methodConfig.methodName] = function (\n this: {},\n ...args\n ): Models__NS__Http__NS__ClientAction<any> {\n // console.log('[init method browser] FRONTEND expressPath', expressPath)\n // const productionMode = FrameworkContext.isProductionMode;\n\n //#region resolve frontend parameters\n\n if (!storage[Symbols__NS__old.ENDPOINT_META_CONFIG])\n storage[Symbols__NS__old.ENDPOINT_META_CONFIG] = {};\n if (!storage[Symbols__NS__old.ENDPOINT_META_CONFIG][ctx.uriOrigin])\n storage[Symbols__NS__old.ENDPOINT_META_CONFIG][ctx.uriOrigin] = {};\n const endpoints = storage[Symbols__NS__old.ENDPOINT_META_CONFIG];\n let rest: ReturnType<typeof Resource__NS__create>;\n const requestHeaders = RestHeaders.from({});\n if (!endpoints[ctx.uriOrigin][expressPath]) {\n if (methodConfig.contentType && !methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n });\n } else if (methodConfig.contentType && methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n responsetypeaxios: methodConfig.responseType,\n });\n } else if (!methodConfig.contentType && methodConfig.responseType) {\n rest = Resource__NS__create(ctx.uriOrigin, expressPath, {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n });\n requestHeaders.apply({\n responsetypeaxios: methodConfig.responseType,\n });\n } else {\n rest = Resource__NS__create(\n ctx.uriOrigin,\n expressPath,\n {\n responseMapping: {\n entity: Symbols__NS__old.MAPPING_CONFIG_HEADER,\n circular: Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n },\n },\n // Symbols__NS__old.MAPPING_CONFIG_HEADER as any,\n // Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY as any,\n );\n }\n\n endpoints[ctx.uriOrigin][expressPath] = rest;\n } else {\n rest = endpoints[ctx.uriOrigin][expressPath] as any;\n }\n\n const method = httpRequestType.toLowerCase();\n\n const pathPrams = {};\n let queryParams = {};\n let bodyObject = {};\n args.forEach((param, i) => {\n let currentParam: Partial<ParamConfig> = void 0 as any;\n\n for (let pp in methodConfig.parameters) {\n let v = methodConfig.parameters[pp];\n if (v.index === i) {\n currentParam = v;\n break;\n }\n }\n\n if (!currentParam) {\n const errorMessage =\n `[${config.frameworkName}] Unable to resolve parameter` +\n ` at index ${i} for method ${methodConfig.methodName} at path ${expressPath}.`;\n\n/* */\n/* */\n/* */\n \n throw new Error(errorMessage);\n }\n\n const optionsDecodeHeader = {\n useFirstArrayItemClassNameForAllElements: true,\n };\n\n if (currentParam.paramType === 'Path') {\n //#region handle path params\n pathPrams[currentParam.paramName] = param;\n //#endregion\n }\n if (currentParam.paramType === 'Query') {\n //#region handle query params\n if (currentParam.paramName) {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n `${Symbols__NS__old.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n queryParams[currentParam.paramName] = param;\n } else {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n queryParams = ___NS__cloneDeep(param);\n }\n //#endregion\n }\n if (currentParam.paramType === 'Header') {\n //#region handler header params\n if (currentParam.paramName) {\n if (currentParam.paramName === Symbols__NS__old.MDC_KEY) {\n // parese MDC\n requestHeaders.set(\n currentParam.paramName,\n encodeURIComponent(JSON.stringify(param)),\n );\n } else {\n requestHeaders.set(currentParam.paramName, param);\n }\n } else {\n for (let header in param) {\n requestHeaders.set(header, param[header]);\n }\n }\n //#endregion\n }\n if (currentParam.paramType === 'Cookie') {\n //#region handle cookie params\n Resource__NS__Cookies.write(\n currentParam.paramName,\n param,\n currentParam.expireInSeconds,\n );\n //#endregion\n }\n if (currentParam.paramType === 'Body') {\n //#region handle body params\n if (currentParam.paramName) {\n if (ClassHelpers__NS__getName(bodyObject) === 'FormData') {\n //#region prevent posting/putting not full body as FormData\n throw new Error(`[taon - framework] Don use param names when posting / putting FormData.\n Use this:\n// ...\n(@Taon.Http.Param.Body() formData: FormData) ...\n// ...\n\ninstead\n // ...\n (@Taon.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n// ...\n`);\n //#endregion\n }\n\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n `${Symbols__NS__old.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n bodyObject[currentParam.paramName] = param;\n } else {\n const mapping = decodeMappingForHeaderJson(\n param,\n optionsDecodeHeader,\n );\n if (mapping) {\n requestHeaders.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n bodyObject = param;\n }\n //#endregion\n }\n });\n\n if (\n typeof bodyObject === 'object' &&\n ClassHelpers__NS__getName(bodyObject) !== 'FormData'\n ) {\n //#region handle circular objects in body params\n let circuralFromItem = [];\n bodyObject = JSON10.parse(\n JSON10.stringify(bodyObject, void 0, void 0, circs => {\n circuralFromItem = circs;\n }),\n );\n requestHeaders.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON10.stringify(circuralFromItem),\n );\n //#endregion\n }\n\n if (typeof queryParams === 'object') {\n //#region handle circular objects in query params\n let circuralFromQueryParams = [];\n queryParams = JSON10.parse(\n JSON10.stringify(queryParams, void 0, void 0, circs => {\n circuralFromQueryParams = circs;\n }),\n );\n\n requestHeaders.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n JSON10.stringify(circuralFromQueryParams),\n );\n //#endregion\n }\n //#endregion\n\n const httpResultObj: Models__NS__Http__NS__ClientAction<any> = {\n get received() {\n return rest\n .model(pathPrams, { headers: requestHeaders })\n [method](bodyObject, [queryParams]);\n },\n request(axiosConfig?: Ng2RestAxiosRequestConfig) {\n return rest\n .model(pathPrams, { headers: requestHeaders })\n [method](bodyObject, [queryParams], axiosConfig);\n },\n };\n return httpResultObj as Models__NS__Http__NS__ClientAction<any>;\n };\n //#endregion\n }\n //#endregion\n}","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport type { EndpointContext } from './endpoint-context';\n\nexport class ContextsEndpointStorage {\n SPECIAL_APP_READY_MESSAGE = CoreModels__NS__SPECIAL_APP_READY_MESSAGE;\n private taonEndpointContexts = new Map<string, EndpointContext>();\n\n //#region singleton\n private static instance: ContextsEndpointStorage;\n\n private constructor() {\n // Private constructor to prevent direct instantiation\n }\n\n public static get Instance(): ContextsEndpointStorage {\n if (!ContextsEndpointStorage.instance) {\n ContextsEndpointStorage.instance = new ContextsEndpointStorage();\n }\n return ContextsEndpointStorage.instance;\n }\n //#endregion\n\n set(context: EndpointContext): void {\n if (!this.taonEndpointContexts.has(context.contextName)) {\n this.taonEndpointContexts.set(context.contextName, context);\n }\n }\n\n get arr(): EndpointContext[] {\n return Array.from(this.taonEndpointContexts.values()).filter(\n f => f.contextType === 'normal',\n );\n }\n\n getBy(\n context: Partial<EndpointContext> | string,\n ): EndpointContext | undefined {\n if (typeof context === 'string') {\n return this.taonEndpointContexts.get(context) as any;\n }\n return this.taonEndpointContexts.get(context.contextName) as any;\n }\n}\n\n// TODO QUICK_FIX @LAST encapsulate this => move to separate package\nglobalThis['$$$ContextsEndpointStorage$$$'] = ContextsEndpointStorage.Instance;","//#region imports\n\nimport { // TODO somehow backend build is touching this...\n BreakpointObserver,\n // @ts-ignore\n} from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n//#endregion\n\nconst BRK = {\n mobile: '(max-width: 599.98px)',\n // tablet: obsvious\n desktop: '(min-width: 840.00px)',\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BreakpointsService {\n private sub = new Subject<'mobile' | 'tablet' | 'desktop'>();\n\n public listenTo() {\n setTimeout(() => {\n this.sub.next(this.current);\n });\n return this.sub.asObservable();\n }\n\n private current: 'mobile' | 'tablet' | 'desktop';\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver.observe([BRK.mobile, BRK.desktop]).subscribe(state => {\n if (!___NS__isUndefined([BRK.mobile].find(f => state.breakpoints[f]))) {\n this.current = 'mobile';\n this.sub.next('mobile');\n } else if (\n !___NS__isUndefined([BRK.desktop].find(f => state.breakpoints[f]))\n ) {\n this.current = 'desktop';\n this.sub.next('desktop');\n } else {\n this.current = 'tablet';\n this.sub.next('tablet');\n }\n });\n\n setTimeout(() => {\n if (breakpointObserver.isMatched([BRK.mobile])) {\n this.current = 'mobile';\n this.sub.next('mobile');\n } else if (breakpointObserver.isMatched([BRK.desktop])) {\n this.current = 'desktop';\n this.sub.next('desktop');\n } else {\n this.current = 'tablet';\n this.sub.next('tablet');\n }\n });\n }\n}","//#region import\nimport {\n computed,\n inject,\n Injectable,\n signal,\n TemplateRef,\n WritableSignal,\n} from '@angular/core'; // @browser\nimport { StorSignal, TaonStor__NS__awaitAll, TaonStor__NS__inFile, TaonStor__NS__inIndexedDbStorage, TaonStor__NS__inJson, TaonStor__NS__inLocalstorage, TaonStor__NS__inSessionStorage } from 'taon-storage/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { BreakpointsService } from './breakpoints.service';\n//#endregion\n\nexport enum TaonAdminPanelMode {\n NONE = 'NONE',\n ICON = 'ICON',\n POPUP = 'POPUP',\n SIDE = 'SIDE',\n FULL_SCREEN = 'FULL_SCREEN',\n}\n\nexport interface TaonAdminTab {\n name: string;\n templateOrIframeLink?: string | TemplateRef<any>;\n}\n\nexport class TaonAdmin {\n private static _instance: TaonAdmin;\n\n static init(): void {\n TaonAdmin.Instance;\n }\n\n static get Instance(): TaonAdmin {\n if (!this._instance) {\n this._instance = new TaonAdmin();\n }\n return this._instance;\n }\n\n private constructor() {\n // console.log('TAON ADMIN INSTANCE CREATED');\n }\n\n public additionalTabs = signal([] as TaonAdminTab[]);\n\n //#region fields & getters / admin panel mode\n\n public adminPanelMode = TaonStor__NS__inLocalstorage(\n {\n defaultValue: TaonAdminPanelMode.NONE,\n keyOrPath: 'adminPanelMode',\n },\n TaonAdminService,\n );\n //#endregion\n\n //#region fields & getters / keep websql database data after reload\n /**\n * Property used in taon\n */\n public keepWebsqlDbDataAfterReload = TaonStor__NS__inLocalstorage(\n {\n defaultValue: false,\n keyOrPath: 'keepWebsqlDbDataAfterReload',\n },\n TaonAdminService,\n );\n //#endregion\n}\n\n//#region @browser\n@Injectable({ providedIn: 'root' })\n//#endregion\nexport class TaonAdminService {\n //#region singleton + constructor\n\n public readonly isIframe: boolean =\n window.location !== window.parent.location;\n\n private breakpointsService = inject(BreakpointsService);\n\n constructor() {\n window['Taon'] = this;\n window['taon'] = this;\n\n this.breakpointsService.listenTo().subscribe(breakpoint => {\n // console.log({ breakpoint });\n this.isDesktop.set(breakpoint === 'desktop');\n if (this.isDesktop()) {\n //\n } else {\n this.adminPanelMode.set(TaonAdminPanelMode.NONE);\n }\n });\n }\n\n //#endregion\n\n public isDesktop = signal(true);\n\n public get adminPanelMode(): StorSignal<TaonAdminPanelMode> {\n return TaonAdmin.Instance.adminPanelMode;\n }\n\n public get keepWebsqlDbDataAfterReload(): StorSignal<boolean> {\n return TaonAdmin.Instance.keepWebsqlDbDataAfterReload;\n }\n\n public get additionalTabs(): WritableSignal<TaonAdminTab[]> {\n return TaonAdmin.Instance.additionalTabs;\n }\n\n admin(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.FULL_SCREEN);\n }\n\n show(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.POPUP);\n }\n\n hide(): void {\n this.adminPanelMode.set(TaonAdminPanelMode.NONE);\n }\n\n private devTapCount = 0;\n\n private devTapTimeout: any;\n\n enableDeveloperIf5Timetap(): void {\n this.devTapCount++;\n\n // reset timer every tap\n clearTimeout(this.devTapTimeout);\n\n this.devTapTimeout = setTimeout(() => {\n this.devTapCount = 0;\n }, 2000); // 2s window to complete taps\n\n if (this.devTapCount >= 5) {\n this.devTapCount = 0;\n\n this.show();\n }\n }\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport { EndpointContext } from './endpoint-context';\nimport { ContextsEndpointStorage } from './endpoint-context-storage';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from './models';\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\n//#endregion\n\n/**\n * @returns function that returns context function.\n * Context function can be used to dynamically\n * create context with specific configuration.\n */\nexport const createContextTemplate = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARE extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARE\n >,\n) => {\n return () => {\n return createContext<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARE\n >(configFn);\n };\n};\n\n/**\n * REQURIED PROPERTY:\n * - contextName\n */\nconst createContextFn = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARES extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARES\n >,\n cloneOptions: Models__NS__TaonCtxCloneParams,\n) => {\n cloneOptions = cloneOptions || {};\n let config = configFn({});\n // console.log(\n // `\n\n // [Taon] Creating context ${config.contextName}...`,\n // {config},\n // );\n const endpointContextRef = new EndpointContext(\n config,\n configFn,\n cloneOptions,\n );\n\n const res = {\n //#region contexts\n get contextName() {\n return config.contextName;\n },\n //#endregion\n\n get appId() {\n return config.appId;\n },\n\n cloneAsRemote: (cloneOpt?: { overrideRemoteHost?: string }) => {\n cloneOpt = cloneOpt || {};\n const opt: Models__NS__TaonCtxCloneParams = {\n ...cloneOpt,\n sourceContext: endpointContextRef,\n useAsRemoteContext: true,\n };\n return createContextFn(configFn, opt);\n },\n\n cloneAsNormal: (cloneOpt?: { overrideHost?: string }) => {\n cloneOpt = cloneOpt || {};\n const opt: Models__NS__TaonCtxCloneParams = {\n ...cloneOpt,\n sourceContext: endpointContextRef,\n useAsRemoteContext: false,\n };\n return createContextFn(configFn, opt);\n },\n\n //#region context\n /**\n * @deprecated\n * - get reference to internal context\n */\n async __ref() {\n if (!endpointContextRef.inited) {\n await endpointContextRef.init({\n initFromRecrusiveContextResovle: true,\n });\n }\n return endpointContextRef;\n },\n /**\n * only for internal use\n * @deprecated\n */\n get __refSync() {\n return endpointContextRef;\n },\n getClassInstance<T>(ctor: new (...args: any[]) => T): T {\n return endpointContextRef.getInstanceBy(ctor);\n },\n\n getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T {\n const classFun = endpointContextRef.getClassFunByClass(ctor);\n return classFun as any;\n //#region old\n // TODO hmmmm for now context for controller inside api service\n // const allContexts = Object.values(classFun[Symbols__NS__orignalClassClonesObj] || {}).map(classFn => {\n // return {\n // ctx: classFn[Symbols__NS__ctxInClassOrClassObj] as EndpointContext,\n // classFn,\n // }\n // })\n // const activeContext = allContexts.find(c => c.ctx.inited);\n // debugger\n // console.log('activeContext', activeContext.ctx.contextName);\n // return activeContext.ctx.getClassFunByClass(ctor) as any;\n //#endregion\n },\n //#endregion\n //#region initialize\n /**\n * - create controller instances for context\n * - init database (if enable) + migation scripts\n */\n initialize: async (\n overrideOptions?: Models__NS__TaonInitializeParams,\n ): Promise<EndpointContext> => {\n return await new Promise(async (resolve, reject) => {\n //#region init in set timeout\n setTimeout(async () => {\n if (UtilsOs__NS__isRunningInDocker()) {\n const activeContext = config?.activeContext || null;\n if (\n ___NS__isString(activeContext) &&\n activeContext !== '' &&\n activeContext !== config?.contextName\n ) {\n console.warn(\n `[taon] Context ${endpointContextRef.contextName} is not active context, skipping initialization.`,\n );\n resolve(endpointContextRef);\n return;\n }\n }\n\n await endpointContextRef.init({\n ...overrideOptions,\n });\n\n if (config.abstract) {\n throw new Error(`Abstract context can not be initialized`);\n }\n\n await endpointContextRef.initEntities();\n await endpointContextRef.initSubscribers();\n\n await endpointContextRef.initDatabaseConnection();\n\n await endpointContextRef.dbMigrations.ensureMigrationTableExists();\n\n // console.log(\n // 'connection subscribers',\n // endpointContextRef?.connection?.subscribers,\n // );\n // debugger;\n await endpointContextRef.initControllers();\n await endpointContextRef.startServer();\n/* */\n/* */\n \n\n await endpointContextRef.initClasses();\n if (endpointContextRef.databaseConfig) {\n //#region handle websql reload data\n //#region @browser\n let keepWebsqlDbDataAfterReload = false;\n\n keepWebsqlDbDataAfterReload =\n TaonAdmin.Instance?.keepWebsqlDbDataAfterReload();\n\n // console.log({ keepWebsqlDbDataAfterReload });\n\n if (keepWebsqlDbDataAfterReload) {\n !UtilsOs__NS__isRunningInCliMode() &&\n Helpers__NS__info(\n `[taon] Keeping websql data after reload ` +\n `(context=${endpointContextRef.contextName}).`,\n );\n } else {\n Helpers__NS__info(\n `[taon] Dropping all tables and data ` +\n `(context=${endpointContextRef.contextName}).`,\n );\n }\n //#endregion\n //#endregion\n\n //#region TODO this may be usefull but for now\n // 2 separate contexts are fine\n // const shouldStartRemoteHost = endpointContextRef.mode !== 'remote-backend(tcp+udp)';\n // if(shouldStartRemoteHost) {\n // const endpointContextRemoteHostRef = new EndpointContext(config, configFn);\n // await endpointContextRemoteHostRef.init({\n // overrideRemoteHost: endpointContextRef.host,\n // overrideHost: null,\n // });\n // endpointContextRemoteHostRef.initMetadata();\n\n // endpointContextRef.__contextForControllerInstanceAccess = endpointContextRemoteHostRef;\n // }\n //#endregion\n\n //#region run migrations tasks\n if (endpointContextRef.onlyMigrationRun) {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Running only migrations (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();\n } else if (endpointContextRef.onlyMigrationRevertToTimestamp) {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Reverting migrations to timestamp ${\n endpointContextRef.onlyMigrationRevertToTimestamp\n } (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.revertMigrationToTimestamp(\n endpointContextRef.onlyMigrationRevertToTimestamp,\n );\n } else {\n endpointContextRef.logMigrations &&\n Helpers__NS__log(\n `[taon] Running all not applied migrations (context=${endpointContextRef.contextName}).`,\n );\n await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();\n }\n //#endregion\n }\n\n ContextsEndpointStorage.Instance.set(endpointContextRef);\n\n resolve(endpointContextRef);\n });\n //#endregion\n });\n },\n /**\n * realtime communication with server\n * TCP(upgrade) socket.io (or ipc) based.\n */\n get realtime() {\n return {\n get client() {\n if(!endpointContextRef) {\n throw new Error(`Please .initialize() context before using <context>.realtime.client.<anything> `)\n }\n return endpointContextRef.realtimeClient;\n },\n get server() {\n if(!endpointContextRef) {\n throw new Error(`Please .initialize() context before using <context>.realtime.server.<anything> `)\n }\n return endpointContextRef.realtimeServer;\n },\n };\n },\n };\n return res;\n};\n//#endregion\n\nexport const createContext = <\n //#region context generic args\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n MIGRATION extends Record<string, new (...args: any[]) => any>,\n MIDDLEWARES extends Record<string, new (...args: any[]) => any>,\n //#endregion\n>(\n configFn: (\n env: any,\n ) => Models__NS__ContextOptions<\n CTX,\n CTRL,\n ENTITY,\n REPO,\n PROVIDER,\n SUBSCRIBER,\n MIGRATION,\n MIDDLEWARES\n >,\n) => {\n return createContextFn(configFn, { useAsRemoteContext: false });\n};\n\nexport type TaonContext = ReturnType<typeof createContext>;\n\n// const AA = createContext(() => ({ contextName: 'aa' }));\n// const BB = AA.cloneAsRemoteContext();","import type { TaonBaseInjector } from './base-classes/base-injector';\nimport type { EndpointContext } from './endpoint-context';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\n\nexport const inject = <T>(entity: () => new (...args: any[]) => T): T => {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n if (propName === 'hasOwnProperty') {\n return () => false;\n }\n\n const ctor = entity();\n const contextFromClass = ctor[\n Symbols__NS__ctxInClassOrClassObj\n ] as EndpointContext;\n const resultContext = contextFromClass;\n if (resultContext) {\n let instance = resultContext.inject(ctor, {\n parentInstanceThatWillGetInjectedStuff: this,\n }) as TaonBaseInjector;\n // console.log('instance', instance);\n\n if (propName === 'getOriginalPrototype') {\n return () => Object.getPrototypeOf(instance);\n }\n if (propName === 'getOriginalConstructor') {\n return () => instance.constructor;\n }\n\n const methods = ctor[Symbols__NS__classMethodsNames] || [];\n const isMethods = methods.includes(propName);\n\n const methodOrProperty = isMethods\n ? instance[propName].bind(instance)\n : instance[propName];\n\n // console.log(\n // `methodOrProperty from proxy ${propName?.toString()} = isMethods:${isMethods}`,\n // methods,\n // );\n return methodOrProperty;\n }\n },\n },\n ) as T;\n};\n\n// export const injectController = inject;\n\n// export type SubscriptionEvent<T> = {\n// name: keyof T;\n// data: any;\n// };\n\n/**\n * TODO\n */\n// export const injectEntityEvents = <T>(\n// subscriberClassResolveFn: () => new (...args: any[]) => T,\n// eventName?: keyof Omit<EntitySubscriberInterface,'listenTo'> ,\n// ): Observable<SubscriptionEvent<T>> => {\n// const eventsSrc = new Subject<SubscriptionEvent<T>>();\n// const obs = eventsSrc.asObservable();\n\n// let isFirstSubscription = true;\n\n// const proxyObservable = new Proxy(obs, {\n// get(target, prop, receiver) {\n// if (prop === 'subscribe') {\n// return (...args: any[]) => {\n// if (isFirstSubscription) {\n// isFirstSubscription = false;\n// const subscriberClassFN: typeof TaonBaseClass =\n// subscriberClassResolveFn() as any;\n// const ctx = subscriberClassFN[\n// Symbols__NS__ctxInClassOrClassObj\n// ] as EndpointContext;\n// if (!ctx) {\n// throw new Error(\n// `You are trying to inject class without context. Use context like this:\n\n// class MyClassSubscriber extends BaseSubscriber {\n// ${eventName as any}() {\n// \\/\\/ your code here\n// }\n// }\n\n// Taon.injectSubscriberEvents( MyContext.getInstance(()=> MyClassSubscriber), '${eventName as any}' )\n\n// `,\n// );\n// }\n// const subscriberInstance = ctx.getInstanceBy(subscriberClassFN);\n// // subscriberInstance TODO @LAST subscriber event from instance\n// // const entity = subscriberClassFN.prototype.listenTo();\n// console.log('First subscription, you can access arguments here:', {\n// subscriberClassFN,\n// eventName,\n// });\n// }\n// return target.subscribe(...args);\n// };\n// }\n// return Reflect.get(target, prop, receiver);\n// },\n// });\n\n// return proxyObservable as Observable<SubscriptionEvent<T>>;\n// };","//#region imports\nimport type { Response } from 'express';\nimport { JSON10 } from 'json10/browser-prod';\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { decodeMappingForHeaderJson } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { config } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from './helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from './symbols';\n//#endregion\n\n//#region get transform function\n/**\n * @deprecated\n */\nexport const getTransformFunction = (target: Function) => {\n if (!target) {\n return;\n }\n\n // const className = ClassHelpers__NS__getName(target)\n // target = ClassHelpers.getBy(className);\n\n if (!target) {\n return void 0;\n }\n const configs = ClassHelpers__NS__getControllerConfigs(target);\n // console.log(`CONFIGS TO CHECK`, configs)\n const functions = configs\n .map(c => {\n if (___NS__isFunction(c.browserTransformFn)) {\n return c.browserTransformFn;\n }\n })\n .filter(f => ___NS__isFunction(f));\n return functions.length === 0\n ? void 0\n : function (entity) {\n for (let index = functions.length - 1; index >= 0; index--) {\n const transformFun = functions[index];\n transformFun(entity);\n }\n return entity;\n };\n};\n//#endregion\n\n//#region single transform\n/**\n * @deprecated\n */\nexport const singleTransform = (json: any) => {\n let ptarget = ClassHelpers__NS__getClassFnFromObject(json);\n let pbrowserTransformFn = getTransformFunction(ptarget);\n if (pbrowserTransformFn) {\n const newValue = pbrowserTransformFn(json);\n if (!___NS__isObject(newValue)) {\n console.error(\n `Please return object in transform function for class: ` +\n `${ClassHelpers__NS__getName(json)}`,\n );\n } else {\n json = newValue;\n }\n }\n return json;\n};\n//#endregion\n\nexport class EntityProcess {\n //#region fields\n /**\n * Data to send\n */\n data: any;\n\n /**\n * Say yes to:\n * - circural object\n * - transform browser fn in decorator\n */\n private advancedManipulation: boolean = false;\n\n private entityMapping: any;\n\n private circural = [];\n //#endregion\n\n //#region constructor\n constructor(\n /**\n * Data from backend\n */\n private result: any,\n private response: Response,\n ) {}\n //#endregion\n\n //#region check advanced manipulation\n private checkAdvancedManiupulation() {\n if (___NS__isFunction(this.result)) {\n this.advancedManipulation = true;\n this.result = this.result();\n }\n }\n //#endregion\n\n //#region run\n public async run() {\n this.checkAdvancedManiupulation();\n this.data = this.result;\n\n if (___NS__isObject(this.result)) {\n if (this.advancedManipulation) {\n this.applayTransformFn();\n }\n\n this.setHeaders();\n }\n this.send();\n }\n //#endregion\n\n //#region apply transform function\n applayTransformFn() {\n if (___NS__isObject(this.data) && !___NS__isArray(this.data)) {\n this.data = singleTransform(this.data);\n }\n const { include } = { include: [] };\n walk.Object(\n this.data,\n (value, lodashPath, changeValue, { skipObject, isCircural }) => {\n // console.log(`${isCircural ? 'CIR' : 'NOT'} : ${lodashPath}`)\n if (!isCircural) {\n if (!___NS__isArray(value) && ___NS__isObject(value)) {\n changeValue(singleTransform(value));\n }\n }\n },\n { checkCircural: true, breadthWalk: true, include },\n );\n\n const { circs } = walk.Object(this.data, void 0, {\n checkCircural: true,\n breadthWalk: true,\n include,\n });\n this.circural = circs;\n }\n //#endregion\n\n //#region set headers\n setHeaders(): void {\n const { include } = { include: [] };\n\n const className = ClassHelpers__NS__getName(this.data);\n const doNothing =\n ___NS__isNil(this.data) ||\n [\n 'Object',\n '',\n // void 0, null // TODO not sure about commenting this\n ].includes(className);\n // console.log('doNothing', doNothing)\n if (!doNothing) {\n // TODO not needed ?\n // const cleaned = JSON10.cleaned(this.data, void 0, {\n // breadthWalk: true,\n // include,\n // });\n // decodeMappingForHeaderJson is handling nested objects ok\n this.entityMapping = decodeMappingForHeaderJson(this.data, {\n useFirstArrayItemClassNameForAllElements: !this.advancedManipulation,\n });\n\n this.response.set(\n Symbols__NS__old.MAPPING_CONFIG_HEADER,\n JSON.stringify(this.entityMapping),\n );\n if (this.advancedManipulation) {\n this.response.set(\n Symbols__NS__old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON.stringify(this.circural),\n );\n }\n }\n }\n //#endregion\n\n //#region send\n send() {\n if (this.advancedManipulation) {\n const browserKey = config.folder.browser;\n let toSend = ___NS__isArray(this.data) ? [] : {};\n\n const { include = [], exclude = [] } = { include: [], exclude: [] };\n\n walk.Object(\n this.data,\n (value, lodashPath, changeVAlue, { isCircural, skipObject }) => {\n // console.log(`${isCircural ? 'CIR' : 'NOT'} ${lodashPath}`)\n if (isCircural) {\n ___NS__set(toSend, lodashPath, null);\n } else {\n const fun = getTransformFunction(\n ClassHelpers__NS__getClassFnFromObject(value),\n );\n\n if (___NS__isFunction(fun)) {\n ___NS__set(toSend, `${lodashPath}.${browserKey}`, value[browserKey]);\n const indexProp = ClassHelpers__NS__getUniqueKey(value);\n ___NS__set(toSend, `${lodashPath}.${indexProp}`, value[indexProp]);\n // skipObject()\n } else {\n ___NS__set(toSend, lodashPath, value);\n }\n }\n },\n { checkCircural: true, breadthWalk: true, include },\n );\n\n if (!___NS__isArray(this.data)) {\n let funParent = getTransformFunction(\n ClassHelpers__NS__getClassFnFromObject(this.data),\n );\n // if (this.mdc && this.mdc.exclude && this.mdc.exclude.length > 0) {\n // console.log(`funParent !!! have fun? ${!!funParent} `)\n // }\n if (___NS__isFunction(funParent)) {\n toSend = {\n [browserKey]: toSend[browserKey],\n };\n }\n Object.keys(this.data).forEach(prop => {\n if (prop !== browserKey) {\n const v = this.data[prop];\n if (\n !(\n (include.length > 0 && !include.includes(prop)) ||\n (exclude.length > 0 && exclude.includes(prop))\n )\n ) {\n if (\n ClassHelpers__NS__isContextClassObject(v) &&\n ___NS__isFunction(\n getTransformFunction(ClassHelpers__NS__getClassFnFromObject(v)),\n )\n ) {\n toSend[prop] = {\n [browserKey]: v[browserKey],\n };\n const indexProp = ClassHelpers__NS__getUniqueKey(v);\n toSend[prop][indexProp] = this.data[prop][indexProp];\n for (const key in v) {\n if (\n ___NS__isObject(v) &&\n v.hasOwnProperty(key) &&\n ![indexProp, config.folder.browser].includes(key) &&\n (___NS__isString(v[key]) ||\n ___NS__isNumber(v[key]) ||\n ___NS__isDate(v[key]) ||\n ___NS__isNull(v[key]) ||\n ___NS__isBoolean(v[key]))\n ) {\n toSend[prop][key] = v[key];\n }\n }\n } else {\n toSend[prop] = v;\n }\n }\n }\n });\n }\n\n // toSend = Helpers.JSON.cleaned(toSend, void 0, { breadthWalk: true })\n this.response.json(toSend);\n } else {\n this.response.json(this.data);\n }\n }\n //#endregion\n}","import { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport const cloneObj = <CloneT>(\n override: Partial<CloneT>,\n classFn: Function,\n): CloneT => {\n const result = ___NS__merge(new (classFn as any)(), ___NS__cloneDeep(this));\n walk.Object(\n override || {},\n (value, lodashPath) => {\n const valueIsEmptyArray = Array.isArray(value) && value.length === 0;\n if (!valueIsEmptyArray && (___NS__isNil(value) || ___NS__isFunction(value) || ___NS__isObject(value))) {\n // skipping\n } else {\n ___NS__set(result, lodashPath, value);\n }\n },\n {\n walkGetters: false,\n },\n );\n // console.log({result})\n return result;\n};","//#region imports\nimport { walk } from 'lodash-walk-object/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { cloneObj } from '../helpers/clone-obj';\n\n//#endregion\n\nexport class TaonBaseClass<CloneT extends TaonBaseClass = any> {\n //#region class initialization hook\n /**\n * class initialization hook\n * taon after class instance creation\n */\n async _(): Promise<void> {}\n //#endregion\n\n //#region clone\n /**\n *\n * @param overrideObjOrFn if object is provided it will override values in cloned object,\n * if function is provided it will be called with old cloned values and should return\n * object with values to override\n * @returns cloned instance of the class\n */\n public clone(\n overrideObjOrFn?:\n | Partial<CloneT>\n | ((oldValues: Partial<CloneT>) => Partial<CloneT>),\n ): CloneT {\n if(___NS__isString(overrideObjOrFn)) {\n console.log(overrideObjOrFn);\n throw new Error('String is not supported as .clone() method argument');\n }\n const classFn = ClassHelpers__NS__getClassFnFromObject(this);\n if (___NS__isFunction(overrideObjOrFn)) {\n // console.log('clone with fn');\n const oldValues = (___NS__cloneDeep(this) || {}) as any as Partial<CloneT>;\n return cloneObj<CloneT>(overrideObjOrFn(oldValues), classFn);\n }\n // console.log('clone normal');\n return cloneObj<CloneT>(overrideObjOrFn as any, classFn);\n }\n //#endregion\n}","/* */ \nimport { RelationPath } from 'taon-typeorm/browser-prod';\n\nimport { TaonBaseClass } from './base-class';\n\n/* */\n/* */\n \nexport abstract class TaonBaseEntity<\n /**\n * type for cloning\n */\n CloneT extends TaonBaseClass = any,\n> extends TaonBaseClass<CloneT> {\n /**\n * simple check if relation is ok\n */\n relation(relationName: RelationPath<CloneT>): string {\n return relationName as string;\n }\n\n /**\n * simple check if relation is ok\n */\n relations(relationNames: RelationPath<CloneT>[]): string[] {\n return relationNames as string[];\n }\n}","/* */ \n\nimport {\n Generated,\n GeneratedColumn,\n PrimaryColumn,\n PrimaryGeneratedColumn,\n VirtualColumn,\n} from '../orm';\n\nimport type { TaonBaseClass } from './base-class';\nimport { TaonBaseEntity } from './base-entity';\n\n/* */\n/* */\n \nexport abstract class TaonBaseAbstractEntity<\n CloneT extends TaonBaseClass = any,\n> extends TaonBaseEntity<CloneT> {\n/* */\n/* */\n \n id: string;\n\n/* */\n/* */\n \n version: number;\n}\n\nexport type AbstractEntityOmitKeys<ENTITY> = Omit<\n ENTITY,\n 'id' | 'version' | '_' | 'clone'\n>;","import { isPlatformServer, isPlatformBrowser } from '@angular/common'; // @browser\nimport { Injectable } from '@angular/core'; // @browser\nimport { inject, PLATFORM_ID } from '@angular/core'; // @browser\n\nimport {\n CURRENT_HOST_BACKEND_PORT,\n CURRENT_HOST_URL,\n TAON_CONTEXT,\n} from '../constants';\nimport { TaonContext } from '../create-context';\nimport { inject as taonInject } from '../inject';\n\n/**\n * TODO prevent calling methods when not initialized\n * with init(ctx)\n */\n//#region @browser\n@Injectable()\n//#endregion\nexport abstract class TaonBaseAngularService {\n //#region @browser\n protected readonly platformId = inject(PLATFORM_ID);\n\n protected readonly currentContext: TaonContext = inject(TAON_CONTEXT);\n\n /**\n * @deprecated\n * current context host backend port (for localhost backend)\n */\n protected readonly CURRENT_HOST_BACKEND_PORT: number | undefined;\n\n /**\n * @deprecated\n * current context host URL (for localhost backend)\n */\n protected readonly CURRENT_HOST_URL: string | undefined;\n\n //#endregion\n constructor() {\n //#region @browser\n this.CURRENT_HOST_BACKEND_PORT = inject(CURRENT_HOST_BACKEND_PORT, {\n optional: true,\n });\n this.CURRENT_HOST_URL = inject(CURRENT_HOST_URL, {\n optional: true,\n });\n // #endregion\n }\n\n /**\n * Returns true if the application is running in SSR (server-side rendering) mode only.\n */\n public get isSsrPlatform(): boolean {\n //#region @browser\n return isPlatformServer(this.platformId);\n //#endregion\n return false;\n }\n\n /**\n * Returns true if the application is running in browser-only mode.\n */\n public get isBrowserPlatform(): boolean {\n //#region @browser\n return isPlatformBrowser(this.platformId);\n //#endregion\n return false;\n }\n\n /**\n * @deprecated\n * Returns the host URL for the backend service\n * that is running on localhost (normal NodeJS/ExpressJS mode).\n */\n get host(): string {\n //#region @browser\n if (this.CURRENT_HOST_URL) {\n return this.CURRENT_HOST_URL;\n }\n return `http://localhost:${this.CURRENT_HOST_BACKEND_PORT}`;\n //#endregion\n return void 0;\n }\n\n injectController<T>(\n ctor: new (...args: any[]) => T,\n /**\n * optional override context\n */\n overrideCurrentContext?: TaonContext,\n ): T {\n return taonInject(() => {\n let currentContext: TaonContext;\n //#region @browser\n currentContext = overrideCurrentContext\n ? overrideCurrentContext\n : this.currentContext;\n //#endregion\n if (!currentContext || !currentContext.__refSync.inited) {\n throw new Error(\n `\n Context not available. Make sure to .initialize()\n the context before injecting controllers.\n\n `,\n );\n }\n return currentContext ? currentContext.getClass(ctor) : void 0;\n }) as T;\n }\n}","import 'reflect-metadata';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Provider decorator\n */\nexport function TaonMiddleware<T = any>(\n options?: TaonMiddlewareOptions<T>,\n) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonMiddlewareOptions<T = any> extends DecoratorAbstractOpt {\n // middleware is a singleton for each context\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { EndpointContext } from '../endpoint-context';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\n\nimport { TaonBaseCustomRepository } from './base-custom-repository';\nimport type { TaonBaseRepository } from './base-repository';\n//#endregion\n\nexport class TaonBaseInjector {\n //#region proxy dummy function\n /**\n * for proxy purposes\n */\n getOriginalPrototype: () => any;\n /**\n * for proxy purposes\n */\n getOriginalConstructor: () => any;\n //#endregion\n\n //#region class initialization hook\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _(): Promise<void> {}\n //#endregion\n\n //#region context\n /**\n * @deprecated use ctx instead\n * Current endpoint context\n */\n get __endpoint_context__(): EndpointContext {\n return this[Symbols__NS__ctxInClassOrClassObj] as EndpointContext;\n }\n\n /**\n * get current endpoint context\n */\n get ctx(): EndpointContext {\n return this.__endpoint_context__;\n }\n //#endregion\n\n //#region inject\n\n //#region inject / repo for entity\n /**\n * inject crud repo for entity\n */\n injectRepo<T>(\n entityForCrud: new (...args: any[]) => T,\n ): TaonBaseRepository<T> {\n const repoProxy = this.__inject(void 0, {\n localInstance: true,\n resolveClassFromContext: 'TaonBaseRepository',\n locaInstanceConstructorArgs: [() => entityForCrud],\n });\n return repoProxy as any;\n }\n //#endregion\n\n //#region inject / custom repository\n injectCustomRepository<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: true,\n locaInstanceConstructorArgs: [\n () => {\n const classToProcess =\n this.ctx.allClassesInstances[\n ClassHelpers__NS__getName(cutomRepositoryClass)\n ];\n\n return classToProcess.entityClassResolveFn();\n },\n ],\n });\n return repoProxy;\n }\n //#endregion\n\n //#region inject / custom repository\n injectKvRepository<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: false,\n });\n return repoProxy;\n }\n //#endregion\n\n //#region inject / custom repo\n /**\n * aliast to this.injectRepository()\n */\n injectCustomRepo<T extends TaonBaseCustomRepository>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.injectCustomRepository<T>(cutomRepositoryClass);\n return repoProxy;\n }\n //#endregion\n\n //#region inject / controller\n /**\n * example usage:\n * ...\n * exampleController = this.injectController(ExampleController);\n * ...\n */\n injectController<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / ctrl\n /**\n * example usage:\n * ...\n * exampleSubscriber = this.injectSubscriber(ExampleSubscriber)\n * ...\n */\n injectSubscriber<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / ctrl\n /**\n * aliast to .injectController()\n */\n injectCtrl<T>(ctor: new (...args: any[]) => T): T {\n return this.injectController<T>(ctor);\n }\n //#endregion\n\n //#region inject / global provider\n /**\n * inject middleware for context\n */\n injectMiddleware<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / context provider\n /**\n * inject provider for context\n */\n injectProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n //#endregion\n\n //#region inject / __ inject\n /**\n * Inject: Controllers, Providers, Repositories, Services, etc.\n * TODO addd nest js injecting\n */\n private __inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n /**\n * (sql db repositories are ONLY/ALWAYS local instances)\n * If true, then local instance will be created\n * controllers, providers can be local or global\n */\n localInstance: boolean;\n /**\n * Name of class that should be resolved from context\n * (in case ctor === undefined)\n */\n resolveClassFromContext?: string;\n /**\n * Args passed to constructor of TaonBaseRepository\n * (for now just first arg is relevant)\n */\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n\n const contextClassInstance = this;\n return new Proxy(\n {},\n {\n get: (__, propName) => {\n const contextFromClass: EndpointContext =\n ctor && ctor[Symbols__NS__ctxInClassOrClassObj];\n\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n if (!instance) {\n throw new Error(\n `Not able to inject \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers__NS__getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories or middlewares)\n\n `,\n );\n }\n\n const result =\n typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n\n // console.log(`Accessing injected \"${propName?.toString()}\" from \"${ClassHelpers__NS__getName(ctor) || ctor.name}\"`,result)\n return result;\n }\n //#region @browser\n // return inject(ctor)[propName];\n //#endregion\n },\n set: (__, propName, value) => {\n const contextFromClass = ctor && ctor[Symbols__NS__ctxInClassOrClassObj];\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n parentInstanceThatWillGetInjectedStuff: this,\n });\n if (!instance) {\n const classNameNotResolved =\n ClassHelpers__NS__getName(ctor) || ctor.name;\n throw new Error(\n `Not able to inject \"${classNameNotResolved}\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers__NS__getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers__NS__getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories or middlewares)\n\n `,\n );\n }\n instance[propName] = value;\n }\n return true;\n },\n },\n ) as T;\n }\n //#endregion\n\n //#endregion\n}","//#region imports\nimport type { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport {\n AxiosTaonHttpHandler,\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseInjector } from './base-injector';\n//#endregion\n\n/**\n * TODO\n * - global provider available in all contexts\n * - provider available in own context\n */\nexport abstract class TaonBaseMiddleware extends TaonBaseInjector {}\n\nexport interface TaonAdditionalMiddlewareMethodInfo {\n methodName: string;\n expressPath: string;\n httpRequestType: CoreModels__NS__HttpMethod;\n}\n\nexport interface TaonBaseMiddleware {\n /**\n * Global interceptor for whole context\n * backend request\n */\n interceptServer({\n req,\n res,\n next,\n }: TaonServerMiddlewareInterceptOptions): Promise<void> | void;\n\n /**\n * Global interceptor for whole context\n * client requests\n */\n interceptClient({\n req,\n next,\n }: TaonClientMiddlewareInterceptOptions): Observable<AxiosResponse<any>>;\n\n /**\n * Specyfic controller method interceptor\n */\n interceptServerMethod(\n { req, res, next }: TaonServerMiddlewareInterceptOptions,\n {\n methodName,\n expressPath,\n httpRequestType,\n }: TaonAdditionalMiddlewareMethodInfo,\n ): Promise<void> | void;\n\n /**\n * Controller method frontned interceptor\n * TODO not needed ?\n */\n interceptClientMethod(\n { req, next }: TaonClientMiddlewareInterceptOptions,\n {\n methodName,\n expressPath,\n httpRequestType,\n }: TaonAdditionalMiddlewareMethodInfo,\n ): Observable<AxiosResponse<any>>;\n}","//#region imports\n/* */ \n\nimport type { RequestHandler } from 'express';\nimport * as multer from 'multer';\nimport {\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\nimport { Observable } from 'rxjs';\nimport { crossPlatformPath, fse, path } from 'tnp-core/browser-prod';\n\nimport { TaonMiddleware } from '../decorators/classes/middleware-decorator';\n\nimport {\n TaonBaseMiddleware,\n TaonAdditionalMiddlewareMethodInfo,\n} from './base-middleware';\n//#endregion\n\n/**\n * Configurable file upload middleware (multer based)\n */\n@TaonMiddleware({\n className: 'TaonBaseFileUploadMiddleware',\n})\nexport class TaonBaseFileUploadMiddleware extends TaonBaseMiddleware {\n async interceptServerMethod(\n { req, res, next }: TaonServerMiddlewareInterceptOptions,\n { methodName, expressPath }: TaonAdditionalMiddlewareMethodInfo,\n ): Promise<void> {\n return this.middleware()(req, res, next);\n }\n\n //#region upload Dir\n uploadDir(): string {\n return crossPlatformPath([this.ctx.cwd, 'uploaded-files']);\n }\n //#endregion\n\n //#region storage\n storage(): multer.StorageEngine {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region upload\n upload(): multer.Multer {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region middleware\n middleware(): RequestHandler {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Repository decorator\n */\nexport function TaonRepository(options: TaonRepositoryOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n };\n}\n\nexport class TaonRepositoryOptions<T = any> extends DecoratorAbstractOpt {}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\n\nimport { TaonBaseInjector } from './base-injector';\n//#endregion\n\n@TaonRepository({ className: 'TaonBaseCustomRepository' })\nexport abstract class TaonBaseCustomRepository extends TaonBaseInjector {}","//#region imports\nimport { MySqlQuerySource } from 'taon-type-sql/browser-prod';\nimport {\n type DataSource,\n type DeepPartial,\n type DeleteResult,\n type FindManyOptions,\n type FindOneOptions,\n type FindOptionsWhere,\n type InsertResult,\n // ObjectID // TODO why is this not in taon-typeorm,\n type RemoveOptions,\n type Repository,\n type SaveOptions,\n type UpdateResult,\n} from 'taon-typeorm/browser-prod';\nimport type { QueryDeepPartialEntity } from 'taon-typeorm/browser-prod';\nimport type { UpsertOptions } from 'taon-typeorm/browser-prod';\nimport type {\n DataSource as DataSourceType,\n QueryRunner,\n SelectQueryBuilder,\n} from 'taon-typeorm/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\n\nimport { TaonBaseCustomRepository } from './base-custom-repository';\n\n//#endregion\n\nconst INDEX_KEYS_NO_FOR_UPDATE = ['id'];\n\n@TaonRepository({ className: 'TaonBaseRepository' })\nexport abstract class TaonBaseRepository<\n Entity extends { id?: any },\n> extends TaonBaseCustomRepository {\n private REPOS_CACHE_KEY = Symbol('repository cache inside instance');\n //#region dummy fields\n // static ids:number = 0;\n // id:number = TaonBaseRepository.ids++;\n //#endregion\n\n //#region constructor & resolve entity\n abstract entityClassResolveFn: () => any;\n\n constructor(\n // Injected through TaonBaseCrudController\n __entityClassResolveFn: () => any,\n ) {\n super();\n // @ts-ignore\n this.entityClassResolveFn = __entityClassResolveFn;\n }\n //#endregion\n\n //#region db query\n private __dbQuery: MySqlQuerySource;\n\n public get dbQuery(): MySqlQuerySource {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region connection\n public get connection(): DataSourceType {\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region repository\n protected get repository(): Repository<Entity> {\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 return (void 0);\n }\n\n /**\n * target for repository\n */\n public get target(): Function {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to repository\n */\n protected get repo(): Repository<Entity> {\n/* */\n/* */\n return (void 0);\n }\n\n public get repositoryExists(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n //#endregion\n\n //#region crud operations / typeorm / has id\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.repo.hasId(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / get id\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.repo.getId(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / create & bulk create\n /**\n Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n async save(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to save\n * -> it will actuall create new entity in db\n * in oposite to typeorm create method\n */\n /**\n * Creates a new entity instance.\n */\n create(): Entity;\n\n /**\n * Creates new entities and copies all entity properties from given objects into their new entities.\n * Note that it copies only properties that are present in entity schema.\n */\n create(entityLikeArray: DeepPartial<Entity>[]): Entity[];\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 are present in entity schema.\n */\n create(entityLike: DeepPartial<Entity>): Entity;\n\n /**\n * Creates a new entity instance or instances.\n * Can copy properties from the given object into new entities.\n */\n create(\n plainEntityLikeOrPlainEntityLikes?:\n | DeepPartial<Entity>\n | DeepPartial<Entity>[],\n ): Entity | Entity[] {\n return this.repo.create(plainEntityLikeOrPlainEntityLikes as any);\n }\n\n async bulkSave(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * @deprecated use bulkSave instead\n */\n async bulkCreate(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n return this.bulkSave(items, options);\n }\n\n //#region old typeorm version\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n // save<T extends DeepPartial<Entity>>(\n // entities: T[],\n // options: SaveOptions & {\n // reload: false;\n // },\n // ): Promise<T[]>;\n // /**\n // * Saves all given entities in the database.\n // * If entities do not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entities: T[],\n // options?: SaveOptions,\n // ): Promise<(T & Entity)[]>;\n // /**\n // * Saves a given entity in the database.\n // * If entity does not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entity: T,\n // options: SaveOptions & {\n // reload: false;\n // },\n // ): Promise<T>;\n // /**\n // * Saves a given entity in the database.\n // * If entity does not exist in the database then inserts, otherwise updates.\n // */\n // save<T extends DeepPartial<Entity>>(\n // entity: T,\n // options?: SaveOptions,\n // ): Promise<T & Entity> {\n // return this.repo.save(entity, options);\n // }\n //#endregion\n\n //#endregion\n\n //#region crud operations / typeorm / merge\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(mergeIntoEntity: Entity, ...entityLikes: Entity[]): Entity {\n return this.repo.merge(mergeIntoEntity, ...entityLikes);\n }\n //#endregion\n\n //#region crud operations / typeorm / preload\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 preload(entityLike: Entity): Promise<Entity | undefined> {\n return this.repo.preload(entityLike);\n }\n //#endregion\n\n //#region crud operations / typeorm / remove (delete) & bulk remove (delete)\n\n /**\n * Removes a given entities from the database.\n */\n async remove(idOrEntity: number | string | Entity): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to remove\n */\n async delete(idOrEntity: number | string | Partial<Entity>): Promise<Entity> {\n return this.remove(idOrEntity as any);\n }\n\n /**\n * alias to removeById\n */\n async deleteById(id: number | string): Promise<Entity> {\n return this.remove(id);\n }\n\n async bulkRemove(\n idsOrEntities: (number | string | Entity)[],\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkDelete(ids: (number | string | Entity)[]): Promise<Entity[]> {\n return this.bulkRemove(ids);\n }\n\n //#region old typeorm version\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 // delete(\n // criteria:\n // | string\n // | string[]\n // | number\n // | number[]\n // | Date\n // | Date[]\n // | ObjectID\n // | ObjectID[]\n // | FindOptionsWhere<Entity>,\n // ): Promise<DeleteResult> {\n // return this.repo.delete(criteria);\n // }\n\n // /**\n // * Removes a given entities from the database.\n // */\n // remove(entities: Entity[], options?: RemoveOptions): Promise<Entity[]>;\n // /**\n // * Removes a given entity from the database.\n // */\n // remove(entity: Entity, options?: RemoveOptions): Promise<Entity> {\n // return this.repo.remove(entity, options);\n // }\n\n //#endregion\n //#endregion\n\n //#region crud operations / typeorm / soft remove\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.softRemove(entity, options);\n }\n //#endregion\n\n //#region crud operations / typeorm / recover\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.recover(entity, options);\n }\n //#endregion\n\n //#region crud operations / typeorm / insert\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 insert(\n entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n // debugger;\n return this.repo.insert(entity);\n }\n //#endregion\n\n //#region crud operations / typeorm / update & build update\n async update(item: Entity) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private allowedTypesToUpdate = ['simple-json', 'simple-array', 'json'];\n\n async updateById<ENTITY = Entity>(\n id: number | string,\n item: Entity,\n ): Promise<ENTITY> {\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 return (void 0);\n }\n\n async bulkUpdate(items: Entity[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n //#region tpeorm update version\n // this version suck and will not return update entity\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 // update(\n // criteria:\n // | string\n // | string[]\n // | number\n // | number[]\n // | Date\n // | Date[]\n // | ObjectID\n // | ObjectID[]\n // | FindOptionsWhere<Entity>,\n // partialEntity: QueryDeepPartialEntity<Entity>,\n // ): Promise<UpdateResult> {\n // return this.repo.update(criteria, partialEntity);\n // }\n //#endregion\n\n //#endregion\n\n //#region crud operations / typeorm / upsert\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.repo.upsert(entityOrEntities, conflictPathsOrOptions);\n }\n //#endregion\n\n //#region crud operations / typeorm / soft delete\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 softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n // | ObjectID\n // | ObjectID[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.softDelete(criteria);\n }\n //#endregion\n\n //#region crud operations / typeorm / restore\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 restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n // | ObjectID\n // | ObjectID[]\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.restore(criteria);\n }\n //#endregion\n\n //#region crud operations / typeorm / count\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.repo.count(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / count by\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.repo.countBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find\n /**\n * Finds entities that match given find options.\n */\n find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.repo.find(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find by\n /**\n * Finds entities that match given find options.\n */\n findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.repo.findBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find and count\n // async findAndCount(options: { take: number; skip: number }) {\n // const { take, skip } = options;\n // const [result, total] = await this.repo.findAndCount({\n // // where: { name: Like('%' + keyword + '%') },\n // // order: { name: \"DESC\" },\n // take: take,\n // skip: skip,\n // });\n // return { result, total };\n\n // }\n //\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(options?: FindManyOptions<Entity>): Promise<[Entity[], number]> {\n return this.repo.findAndCount(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find and count by\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.repo.findAndCountBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find by ids\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[]): Promise<Entity[]> {\n return this.repo.findByIds(ids);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.repo.findOne(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one by\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.repo.findOneBy(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one or fail\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n findOneById(\n id: number | string | Date,\n // | ObjectID\n ): Promise<Entity | null> {\n return this.repo.findOneById(id);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one or fail\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.repo.findOneOrFail(options);\n }\n //#endregion\n\n //#region crud operations / typeorm / find one by or fail\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.repo.findOneByOrFail(where);\n }\n //#endregion\n\n //#region crud operations / typeorm / query\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 query(query: string, parameters?: any[]): Promise<any> {\n return this.repo.query(query, parameters);\n }\n //#endregion\n\n //#region crud operations / typeorm / query\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 createQueryBuilder(\n alias?: string,\n queryRunner?: QueryRunner,\n ): SelectQueryBuilder<Entity> {\n return this.repo.createQueryBuilder(alias, queryRunner);\n }\n //#endregion\n\n //#region crud operations / typeorm / clear\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 clear(): Promise<void> {\n return this.repo.clear();\n }\n //#endregion\n\n //#region crud operations / typeorm / increment\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.increment(conditions, propertyPath, value);\n }\n //#endregion\n\n //#region crud operations / typeorm / decrement\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.decrement(conditions, propertyPath, value);\n }\n //#endregion\n\n //#region crud operations / get all\n /**\n * @deprecated use findAndCount instead\n */\n async getAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region crud operations / get by id\n async getBy(id: number | string): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","import { createContext } from '../create-context';\nimport { TaonGlobalStateContext } from '../global-state/taon-global-state/taon-global-state.abstract.context';\nimport { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';\nimport { TaonBaseRepository } from './base-repository';\n\nconst TaonBaseContext = createContext(() => ({\n contextName: 'TaonBaseContext',\n abstract: true,\n contexts: {\n // TaonGlobalStateContext,\n },\n middlewares: {\n TaonBaseFileUploadMiddleware,\n },\n repositories: {\n // @ts-ignore\n TaonBaseRepository,\n },\n}));\n\nexport { TaonBaseContext };","import type { TaonControllerOptions } from '../../config/controller-options';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\n/**\n * Controller decorator\n */\nexport function TaonController<ControllerClass = any>(\n options?: TaonControllerOptions<ControllerClass>,\n) {\n return function (constructor: Function) {\n ClassHelpers__NS__setName(constructor, options?.className);\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n const cfg = ClassHelpers__NS__ensureClassConfig(constructor);\n options = options || ({} as any);\n cfg.className = options.className || constructor.name;\n cfg.path = options.path || '';\n cfg.realtime = options.realtime;\n cfg.middlewares = options.middlewares;\n };\n}","import { ResponseTypeAxios } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { TaonBaseMiddleware } from '../../base-classes/base-middleware';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\nconst metaReq = (\n method: CoreModels__NS__HttpMethod,\n path: string,\n target: Function,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n pathOrOptions: string | TaonHttpDecoratorOptions,\n pathIsGlobal: boolean,\n) => {\n const methodConfig = ClassHelpers__NS__ensureMethodConfig(target, propertyKey);\n\n let options: TaonHttpDecoratorOptions;\n if (typeof pathOrOptions === 'object') {\n options = pathOrOptions;\n pathOrOptions = options.path as any;\n pathIsGlobal = !!options.pathIsGlobal;\n path = options.path;\n } else {\n options = { pathOrOptions, pathIsGlobal } as any;\n }\n\n const {\n overrideContentType,\n overrideResponseType,\n overrideExpressSendAsHtml,\n middlewares,\n } = options;\n\n methodConfig.methodName = propertyKey;\n methodConfig.middlewares = middlewares;\n methodConfig.type = method;\n if (!path) {\n let paramsPathConcatedPath = '';\n for (const key in methodConfig.parameters) {\n if (methodConfig.parameters.hasOwnProperty(key)) {\n const element = methodConfig.parameters[key];\n if (\n element.paramType === 'Path' &&\n ___NS__isString(element.paramName) &&\n element.paramName.trim().length > 0\n ) {\n paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;\n }\n }\n }\n methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`;\n } else {\n methodConfig.path = path;\n }\n\n methodConfig.descriptor = descriptor;\n methodConfig.global = pathIsGlobal;\n methodConfig.contentType = overrideContentType;\n methodConfig.responseType = overrideResponseType;\n methodConfig.overrideExpressSendAsHtml = overrideExpressSendAsHtml;\n};\n\nexport type TaonMiddlewareInheritanceObj = {\n [parentMiddlewaresName: string]: typeof TaonBaseMiddleware;\n};\n\nexport type TaonMiddlewareFunction = (options: {\n /**\n * middlewares inherited from parent class\n */\n parentMiddlewares: TaonMiddlewareInheritanceObj;\n /**\n * Get real class name - needed when code is minified\n */\n className: (middlewareClass: Function) => string;\n}) => TaonMiddlewareInheritanceObj;\n\nexport interface TaonHttpDecoratorOptions {\n /**\n * @deprecated don't use in production - keep stuff encapsulated\n * normally path is generated from method name and its params\n */\n path?: string;\n /**\n * If true, the path will be global\n *\n * ! BE CAREFUL ! global path IS NOT GLOBAL inside dockerized app\n * (/api/contextName is automatically added to global path in docker)\n *\n * @deprecated don't use in production - keep stuff encapsulated\n */\n pathIsGlobal?: boolean;\n overrideContentType?: CoreModels__NS__ContentType;\n overrideResponseType?: ResponseTypeAxios;\n /**\n * Express will send response as HTML string with proper headers\n */\n overrideExpressSendAsHtml?: boolean;\n middlewares?: TaonMiddlewareFunction;\n}\n\nexport function GET(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'get',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\n/**\n * Method for sending html website from text\n * Example\n *\n * ```ts\n * ...\n * // in your taon controller\n * ..Taon.Http.HTML()\n * sendHtmlDummyWebsite(): Taon__NS__ResponseHtml {\n * return `\n <html>\n <head>\n <title>Dummy website</title>\n </head>\n <body>\n <h1>This is dummy website</h1>\n <p>Served as HTML string from Taon controller method</p>\n </body>\n </html>\n * `; *\n * }\n * ...\n * ```\n */\nexport function HTML(\n pathOrOptions?: Pick<TaonHttpDecoratorOptions, 'path' | 'pathIsGlobal'>,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n const opt = pathOrOptions as TaonHttpDecoratorOptions;\n opt.overrideExpressSendAsHtml = true;\n metaReq(\n 'get',\n opt as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n opt.pathIsGlobal,\n );\n };\n}\n\nexport function HEAD(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'head',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function POST(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'post',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PUT(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'put',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PATCH(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'patch',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function DELETE(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'delete',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\n\nfunction metaParam(\n param: CoreModels__NS__ParamType,\n name: string,\n expire: number,\n defaultValue = undefined,\n target: Function,\n propertyKey: string | symbol,\n parameterIndex: number,\n) {\n const methodCfg = ClassHelpers__NS__ensureMethodConfig(target, propertyKey);\n const nameKey = name ? name : param;\n // const key = name || `${param}_${parameterIndex}`;\n methodCfg.parameters[nameKey] = {\n index: parameterIndex,\n paramName: name,\n paramType: param,\n defaultType: defaultValue,\n expireInSeconds: expire,\n };\n\n // console.log('params updated', methodConfig);\n}\n\n/**\n * @deprecated use Taon.Http.Param.Path (is more safe and cleaner)\n */\nexport function Path(name: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Path', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\nexport function Query(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Query',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Cookie',\n name,\n expireInSecond,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Header(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Header',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Body(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Body', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}","/* */ \nimport {\n RestErrorResponseWrapper,\n RestResponseWrapper,\n HttpResponseError,\n Ng2RestAxiosRequestConfig,\n} from 'ng2-rest/browser-prod';\n\nimport { crossPlatformPath, fse, path, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__drawLine, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/browser-prod';\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { POST } from '../decorators/http/http-methods-decorators';\nimport { Body, Path, Query } from '../decorators/http/http-params-decorators';\nimport type { EndpointContext } from '../endpoint-context';\nimport type { ContextsEndpointStorage } from '../endpoint-context-storage';\nimport type { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\n\nimport { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';\nimport { TaonBaseInjector } from './base-injector';\n\nexport interface MulterFileUploadResponse {\n ok: boolean;\n originalName: string;\n /**\n * name change to this to avoid confusion with originalname\n * (similar to originalname with added uniq part)\n */\n savedAs: string;\n size: number;\n mimetype: string;\n}\n\n@TaonController<TaonBaseController>({\n className: 'TaonBaseController',\n})\nexport class TaonBaseController<\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends TaonBaseInjector {\n /**\n * Hook that is called when taon app is inited\n * (all contexts are created and inited)\n */\n async afterAllCtxInited(options: {\n ctxStorage: ContextsEndpointStorage;\n }): Promise<void> {}\n\n //#region upload form data to server\n @POST({\n overrideContentType: 'multipart/form-data',\n middlewares: ({ parentMiddlewares }) => ({\n ...parentMiddlewares,\n TaonBaseFileUploadMiddleware,\n }),\n })\n uploadFormDataToServer(\n @Body() formData: FormData,\n @Query() queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): Models__NS__Http__NS__Response<MulterFileUploadResponse[]> {\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 return (void 0);\n }\n //#endregion\n\n //#region after file upload hook\n /**\n * Hook after file is uploaded\n * through `uploadFormDataToServer` or `uploadLocalFileToServer`\n */\n protected afterFileUploadAction(\n file?: MulterFileUploadResponse,\n queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): void | Promise<void> {\n // empty\n }\n\n //#region upload local file to server\n async uploadLocalFileToServer(\n absFilePath: string,\n options?: Pick<Ng2RestAxiosRequestConfig, 'onUploadProgress'>,\n queryParams?: UPLOAD_FILE_QUERY_PARAMS,\n ): Promise<MulterFileUploadResponse[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n // async check() {\n // await this._waitForProperStatusChange({\n // request: () => this.uploadFormDataToServer(void 0, void 0).request(),\n // statusCheck: resp => resp.body.json[0].ok,\n // });\n // }\n\n /**\n * Easy way to wait for status change with http (1s default) pooling.\n *\n * example (in sub class):\n * ```ts\n async check() {\n await this.waitForProperStatusChange({\n request: () => this.uploadFormDataToServer(void 0, void 0).request(),\n statusCheck: resp => resp.body.json[0].ok,\n });\n }\n * ```\n */\n public async _waitForProperStatusChange<T>(options: {\n actionName: string;\n /**\n * Request for pooling\n */\n request: (opt?: {\n /**\n * optional index number to identify request in logs\n * (starts from 0 and increments by 1 on each try)\n */\n reqIndexNum?: number;\n httpErrorsCount?: number;\n }) => ReturnType<Models__NS__Http__NS__Response<T>['request']>;\n poolingInterval?: number;\n /**\n * default infinite tries\n */\n maxTries?: number;\n /**\n * default infiniti allowed http errors\n */\n allowedHttpErrors?: number;\n /**\n * condition to be met\n */\n statusCheck?: (\n response: Awaited<ReturnType<typeof options.request>>,\n ) => boolean;\n /**\n * if return true.. loop will continue\n * if false .. will exit the loop\n */\n loopRequestsOnBackendError?: (opt: {\n unknownError: Error;\n unknownHttpError: HttpResponseError<any>;\n taonError: HttpResponseError<RestErrorResponseWrapper>;\n reqIndexNum?: number;\n httpErrorsCount?: number;\n }) => boolean | Promise<boolean>;\n }): Promise<void> {\n const poolingInterval = options.poolingInterval || 1000;\n const taonRequest = options.request;\n let maxTries = options.maxTries || Number.POSITIVE_INFINITY;\n let i = 0;\n let httpErrorsCount = 0;\n while (true) {\n await UtilsTerminal__NS__waitMilliseconds(poolingInterval);\n try {\n const resp = await taonRequest({\n reqIndexNum: i,\n httpErrorsCount,\n });\n if (options.statusCheck && options.statusCheck(resp)) {\n return;\n }\n } catch (error: Error | HttpResponseError | any) {\n httpErrorsCount++;\n if (options.loopRequestsOnBackendError) {\n const isProperTaonError =\n error instanceof HttpResponseError &&\n error.body.json[CoreModels__NS__TaonHttpErrorCustomProp];\n const isHttpError =\n error instanceof HttpResponseError && !isProperTaonError;\n const isUnknownError = !(error instanceof HttpResponseError);\n\n const resBool = await options.loopRequestsOnBackendError({\n taonError: isProperTaonError ? error : void 0,\n unknownHttpError: isHttpError ? error : void 0,\n unknownError: isUnknownError ? (error as Error) : void 0,\n reqIndexNum: i,\n httpErrorsCount,\n });\n if (resBool) {\n i++;\n continue;\n } else {\n return;\n }\n }\n if (\n httpErrorsCount >\n (options.allowedHttpErrors || Number.POSITIVE_INFINITY)\n ) {\n throw new Error(\n `Too many http errors (${httpErrorsCount}) for \"${options.actionName}\".`,\n );\n }\n }\n\n if (i++ > maxTries) {\n throw new Error(\n `Timeout waiting for \"${options.actionName}\" to be finished. Waited for ${maxTries} seconds`,\n );\n }\n }\n }\n}","//#region imports\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport {\n GET,\n PUT,\n DELETE,\n POST,\n HEAD,\n PATCH,\n} from '../decorators/http/http-methods-decorators';\nimport { Query, Path, Body } from '../decorators/http/http-params-decorators';\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../symbols';\nimport { Validators__NS__checkIfMethodsWithReponseTYpeAlowed, Validators__NS__classNameVlidation, Validators__NS__preventUndefinedModel, Validators__NS__validateClassFunctions } from '../validators';\n\nimport { TaonBaseController } from './base-controller';\nimport { TaonBaseRepository } from './base-repository';\n//#endregion\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonController({ className: 'TaonBaseCrudController' })\nexport abstract class TaonBaseCrudController<\n Entity,\n UPLOAD_FILE_QUERY_PARAMS = {},\n> extends TaonBaseController<UPLOAD_FILE_QUERY_PARAMS> {\n //#region fields\n protected db: TaonBaseRepository<Entity>;\n\n /**\n * Please provide entity as class property entityClassFn:\n * @returns class function\n *\n */\n abstract entityClassResolveFn: () => any;\n //#endregion\n\n //#region init\n async _(): Promise<void> {\n if (!___NS__isFunction(this.entityClassResolveFn)) {\n Helpers__NS__warn(\n `Skipping initing CRUD controller ${ClassHelpers__NS__getName(\n this,\n )} because entityClassResolveFn is not provided.`,\n );\n return;\n }\n\n let entityClassFn = this.entityClassResolveFn();\n this.db = this.injectRepo(entityClassFn);\n\n if (entityClassFn) {\n const configEntity = Reflect.getMetadata(\n Symbols__NS__metadata.options.entity,\n ClassHelpers__NS__getClassFnFromObject(this),\n ) as TaonEntityOptions;\n if (configEntity?.createTable === false) {\n Helpers__NS__warn(\n `Table for entity ${ClassHelpers__NS__getName(\n entityClassFn,\n )} will not be created. Crud will not work properly.`,\n );\n }\n } else {\n Helpers__NS__error(`Entity class not provided for controller ${ClassHelpers__NS__getName(\n this,\n )}.\n\n Please provide entity as class property entityClassFn:\n\n class ${ClassHelpers__NS__getName(this)} extends TaonBaseCrudController<Entity> {\n // ...\n entityClassResolveFn = ()=> MyEntityClass;\n // ...\n }\n\n `);\n }\n await super._();\n }\n //#endregion\n\n //#region bufferd changes\n @GET()\n bufforedChanges(\n @Query(`id`) id: number | string,\n @Query(`property`) property: string,\n @Query('alreadyLength') alreadyLength?: number,\n ): Models__NS__Http__NS__Response<string | any[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region pagintation\n @GET()\n pagination(\n @Query('pageNumber') pageNumber: number = 1,\n @Query('pageSize') pageSize: number = 10,\n @Query('search') search: string = '',\n ): Models__NS__Http__NS__Response<Entity[]> {\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 return (void 0);\n }\n //#endregion\n\n //#region get all\n @GET()\n getAll(): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region get by id\n @GET()\n getBy(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region update by id\n @PUT()\n updateById(\n @Query(`id`) id: number | string,\n @Body() item: Entity,\n ): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region patch by id\n @PATCH()\n patchById(\n @Query(`id`) id: number | string,\n @Body() item: Entity,\n ): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk update\n @PUT()\n bulkUpdate(@Body() items: Entity[]): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region delete by id\n @DELETE()\n deleteById(@Query(`id`) id: number | string): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk delete\n @DELETE()\n bulkDelete(\n @Query(`ids`) ids: (number | string)[],\n ): Models__NS__Http__NS__Response<(number | string | Entity)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk delete\n @DELETE()\n clearTable(): Models__NS__Http__NS__Response<void> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region create\n @POST()\n save(@Body() item: Entity): Models__NS__Http__NS__Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n //#region bulk create\n @POST()\n bulkCreate(@Body() items: Entity): Models__NS__Http__NS__Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { path, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-core/browser-prod';\n/* */ \n/* */ \n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\n\nimport { TaonBaseController } from './base-controller';\nimport { TaonBaseCustomRepository } from './base-custom-repository';\nimport { TaonBaseRepository } from './base-repository';\n//#endregion\n\ntype KvLowDbShape<KV extends Record<string, any>> = KV & {\n __kvMeta?: {\n expirations?: Record<string, number>;\n };\n};\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonRepository({ className: 'TaonBaseKvRepository' })\nexport abstract class TaonBaseKvRepository<\n KV extends Record<string, any> = Record<string, any>,\n> extends TaonBaseCustomRepository {\n //#region lowdb for development\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 //#endregion\n\n //#region private helpers\n private normalizeKey(key: keyof KV): string {\n return `${String(key)}`;\n }\n\n private expirationPath(key: keyof KV): string {\n return `__kvMeta.expirations.${this.normalizeKey(key)}`;\n }\n\n private async getExpirationTimestamp<K extends keyof KV>(\n key: K,\n ): Promise<number | undefined> {\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async isExpired<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n private async cleanupIfExpired<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n\n async set<K extends keyof KV>(key: K, value: KV[K]): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async get<K extends keyof KV>(key: K): Promise<KV[K] | undefined> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async delete<K extends keyof KV>(key: K): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async has<K extends keyof KV>(key: K): Promise<boolean> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async expire<K extends keyof KV>(key: K, ttlSeconds: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async ttl<K extends keyof KV>(key: K): Promise<number | undefined> {\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 return (void 0);\n }\n}","import { MigrationInterface, QueryRunner } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\n\nimport { TaonBaseInjector } from './base-injector';\n\nexport class TaonBaseMigration extends TaonBaseInjector implements MigrationInterface {\n /**\n * by default is READY to run\n */\n public isReadyToRun(): boolean {\n return true;\n }\n\n getDescription(): string {\n return ___NS__startCase(ClassHelpers__NS__getName(this));\n }\n\n async up(queryRunner: QueryRunner): Promise<any> {\n console.log(`[TaonBaseMigration] Running migration UP \"${ClassHelpers__NS__getName(this)}\"`);\n }\n async down(queryRunner: QueryRunner): Promise<any> {\n console.log(`[TaonBaseMigration] Running migration DOWN \"${ClassHelpers__NS__getName(this)}\"`);\n }\n}","import { TaonBaseInjector } from './base-injector';\n\n/**\n * TODO\n * - global provider available in all contexts\n * - provider available in own context\n */\nexport class TaonBaseProvider extends TaonBaseInjector {}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Subscriber decorator\n */\nexport function TaonSubscriber<T=any>(options: TaonSubscriberOptions<T>) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.subscriber,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n } as any;\n}\n\nexport class TaonSubscriberOptions<T = any> extends DecoratorAbstractOpt {\n allowedEvents?: (keyof T)[];\n}","import {\n EntitySubscriberInterface,\n RecoverEvent,\n SoftRemoveEvent,\n InsertEvent,\n TransactionStartEvent,\n TransactionCommitEvent,\n TransactionRollbackEvent,\n RemoveEvent,\n UpdateEvent,\n} from 'taon-typeorm/browser-prod';\nimport { TaonBaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\n@TaonSubscriber({\n className: 'TaonBaseSubscriberForEntity',\n})\nexport abstract class TaonBaseSubscriberForEntity<Entity = any>\n extends TaonBaseInjector\n implements EntitySubscriberInterface\n{\n abstract listenTo(): new (...args) => Entity;\n\n /**\n * Called after entity is loaded.\n */\n afterLoad(entity: any) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY LOADED: `, entity);\n }\n\n /**\n * Called before query execution.\n */\n beforeQuery(event: any) {\n // BeforeQueryEvent<any>\n this.ctx.logDb &&\n console.log(`BEFORE QUERY: `, event.query);\n }\n\n /**\n * Called after query execution.\n */\n afterQuery(event: any) {\n // AfterQueryEvent<any>\n this.ctx.logDb &&\n console.log(`AFTER QUERY: `, event.query);\n }\n\n /**\n * Called before entity insertion.\n */\n beforeInsert(event: InsertEvent<any>) {\n this.ctx.logDb &&\n console.log(`BEFORE ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called after entity insertion.\n */\n afterInsert(event: InsertEvent<any>) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called before entity update.\n */\n beforeUpdate(event: UpdateEvent<any>) {\n this.ctx.logDb &&\n console.log(`BEFORE ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called after entity update.\n */\n afterUpdate(event: UpdateEvent<any>) {\n this.ctx.logDb &&\n console.log(`AFTER ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called before entity removal.\n */\n beforeRemove(event: RemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterRemove(event: RemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity removal.\n */\n beforeSoftRemove(event: SoftRemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterSoftRemove(event: SoftRemoveEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity recovery.\n */\n beforeRecover(event: RecoverEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity recovery.\n */\n afterRecover(event: RecoverEvent<any>) {\n this.ctx.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called before transaction start.\n */\n beforeTransactionStart(event: TransactionStartEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION STARTED`);\n }\n\n /**\n * Called after transaction start.\n */\n afterTransactionStart(event: TransactionStartEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION STARTED`);\n }\n\n /**\n * Called before transaction commit.\n */\n beforeTransactionCommit(event: TransactionCommitEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION COMMITTED`);\n }\n\n /**\n * Called after transaction commit.\n */\n afterTransactionCommit(event: TransactionCommitEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION COMMITTED`);\n }\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback(event: TransactionRollbackEvent) {\n this.ctx.logDb &&\n console.log(`BEFORE TRANSACTION ROLLBACK`);\n }\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback(event: TransactionRollbackEvent) {\n this.ctx.logDb &&\n console.log(`AFTER TRANSACTION ROLLBACK`);\n }\n}","//#region models / method config\n\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\nimport type { TaonBaseMiddleware } from '../base-classes/base-middleware';\nimport type {\n TaonHttpDecoratorOptions,\n TaonMiddlewareFunction,\n TaonMiddlewareInheritanceObj,\n} from '../decorators/http/http-methods-decorators';\n\nimport { ParamConfig } from './param-config';\n\n/**\n * @link './decorators/http/http-methods-decorators.ts' TaonHttpDecoratorOptions\n */\nexport class MethodConfig\n implements Pick<TaonHttpDecoratorOptions, 'path' | 'middlewares'>\n{\n declare methodName: string;\n\n declare global?: boolean;\n /**\n * override default content type\n */\n declare contentType?: any;\n /**\n * override default axiso response type\n */\n declare responseType?: any;\n declare overrideExpressSendAsHtml?: boolean;\n declare path: string;\n declare descriptor: PropertyDescriptor;\n declare type: CoreModels__NS__HttpMethod;\n declare parameters: { [paramName: string]: Partial<ParamConfig> };\n /**\n * Middlewares from controller method options\n */\n declare middlewares?: TaonMiddlewareFunction;\n /**\n * Calculated middlewares object from parents controllers\n */\n declare calculatedMiddlewaresMethodObj?: TaonMiddlewareInheritanceObj;\n /**\n * Middlewares array in proper order and ready to be used in\n * express or in axios interceptors.\n */\n declare calculatedMiddlewares: (typeof TaonBaseMiddleware)[];\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<MethodConfig>): MethodConfig {\n // return cloneObj<MethodConfig>(override, MethodConfig);\n // }\n}\n//#endregion","import { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\n\n// import { cloneObj } from '../helpers/clone-obj';\n\nexport class ParamConfig {\n declare paramName: string;\n declare paramType: CoreModels__NS__ParamType;\n declare index: number;\n declare defaultType: any;\n declare expireInSeconds?: number;\n\n // ! CLONING WILL CONE DESCRIPTOR OF METHOD AND I NEED IT!\n // public clone(override?: Partial<ParamConfig>): ParamConfig {\n // return cloneObj<ParamConfig>(override, ParamConfig);\n // }\n}","import { Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n@Component({\n selector: 'formly-horizontal-wrapper',\n standalone: false,\n template: `\n <div class=\"form-group row\">\n <label\n [attr.for]=\"id\"\n class=\"col-sm-2 col-form-label\"\n *ngIf=\"to.label\">\n {{ to.label }}\n <ng-container *ngIf=\"to.required && to.hideRequiredMarker !== true\"\n >*</ng-container\n >\n </label>\n <div class=\"col-sm-10\">\n <ng-template #fieldComponent></ng-template>\n </div>\n </div>\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 5px;\n margin-bottom: 5px;\n border: 1px dotted gray;\n }\n `,\n ],\n})\nexport class FormlyHorizontalWrapper extends FieldWrapper {\n @ViewChild('fieldComponent', { read: ViewContainerRef }) // @ts-ignore\n fieldComponent: ViewContainerRef;\n}","import { Component } from '@angular/core';\nimport { FieldArrayType, FormlyFormBuilder } from '@ngx-formly/core';\n\n/*\n\nDON'T FORGET\n...\n FormlyModule.forRoot({\n types: [\n { name: 'repeat', component: RepeatTypeComponent },\n ],\n }),\n...\n\n*/\n\n@Component({\n selector: 'formly-repeat-section',\n standalone: false,\n template: `\n <div *ngIf=\"field.fieldGroup && field.fieldGroup.length === 0\">\n Press button to add new element...\n </div>\n <div\n *ngFor=\"let field of field.fieldGroup; let i = index\"\n class=\"taon-formly-array\">\n <formly-group\n [model]=\"model[i]\"\n [field]=\"field\"\n [options]=\"options\"\n [form]=\"formControl\">\n <div>\n <button\n class=\"btn btn-danger\"\n type=\"button\"\n (click)=\"remove(i)\">\n Remove\n </button>\n </div>\n </formly-group>\n </div>\n <div>\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"add()\">\n {{ labelTemplate }}\n </button>\n </div>\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 5px;\n margin-bottom: 5px;\n border: 1px solid gray;\n }\n\n formly-group {\n display: block;\n border: 1px dashed gray;\n margin-bottom: 5px;\n padding: 5px;\n }\n\n .taon-formly-array {\n padding: 5px;\n background: white;\n }\n `,\n ],\n})\nexport class RepeatTypeComponent extends FieldArrayType {\n get labelTemplate() {\n // @ts-ignore\n return this.field.fieldArray.templateOptions.label; // TODO QUICK_FIX\n }\n constructor(builder: FormlyFormBuilder) {\n // TODO QUICK_FIX\n // @ts-ignore\n super(builder);\n }\n}","import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport function findTypeForEntity(entity: Function, isArray: boolean = false) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return getRegisteredComponents().find(\n c => c.entity === entity && c.isArray === isArray,\n );\n}\n\nexport type FormlyEntityType = {\n name: string;\n component: Function;\n entity?: Function;\n isArray?: boolean;\n};\n\nexport function typeFromEntity(\n component: Function,\n entity?: Function | Function[],\n) {\n const isArray = ___NS__isArray(entity);\n if (isArray) {\n entity = ___NS__first(entity as any);\n }\n let name = ClassHelpers__NS__getName(component);\n let res = { name, component, entity, isArray };\n // console.log(res);\n return res;\n}\n\nexport function typeFromName(component: Function, name: string) {\n let res = { name, component };\n return res;\n}\n\nexport function RegisterComponentTypeForEntity(entity: Function | Function[]) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n RegisterComponentType.prototype.types.push(typeFromEntity(target, entity));\n } as any;\n}\n\nexport function RegisterComponentType(\n className: string,\n ...optionslNames: string[]\n) {\n if (!___NS__isArray(RegisterComponentType.prototype.types)) {\n RegisterComponentType.prototype.types = [];\n }\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n ClassHelpers__NS__setName(target, className);\n RegisterComponentType.prototype.types.push(typeFromEntity(target));\n optionslNames.forEach(name => {\n RegisterComponentType.prototype.types.push(typeFromName(target, name));\n });\n } as any;\n}\n// RegisterComponentType.prototype.types = []\n\nexport function getRegisteredComponents() {\n let registered = RegisterComponentType.prototype.types as FormlyEntityType[];\n if (!Array.isArray(registered)) {\n return [];\n }\n // console.log(registered)\n return registered;\n}","import { FormlyFieldConfig } from '@ngx-formly/core';\nimport { decodeMappingForHeaderJson } from 'ng2-rest/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GitConnection, CoreModels__NS__GitConnectionArr, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpCode, CoreModels__NS__HttpMethod, CoreModels__NS__HttpMethodArr, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmPublishOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { FormlyInputType } from './formly.models';\nimport { findTypeForEntity } from './type-from-entity';\n\nexport function getFromlyConfigFor(\n target: Function,\n options: {\n formType?: CoreModels__NS__UIFramework;\n keysPathesToInclude?: string[];\n keysPathesToExclude?: string[];\n parentModel?: string;\n relativePath?: string;\n level?: number;\n maxLevel?: number;\n } = {},\n) {\n const {\n formType = 'material',\n keysPathesToExclude = [],\n keysPathesToInclude = [],\n parentModel,\n relativePath = '',\n level = 0,\n maxLevel = 4,\n } = options;\n\n if (level === maxLevel) {\n return [];\n }\n\n const mapping = decodeMappingForHeaderJson(target);\n\n // console.log('mapping', mapping)\n const fieldNames = Object.keys(mapping);\n const checkExclude =\n ___NS__isArray(keysPathesToExclude) && keysPathesToExclude.length > 0;\n const checkInclude =\n ___NS__isArray(keysPathesToInclude) && keysPathesToInclude.length > 0;\n if (checkExclude && checkInclude) {\n throw new Error(\n `In Taon function getFromlyConfigFor(...) please use keysPathesToInclude or keysPathesToExclude, `,\n );\n }\n // if (checkInclude) {\n // console.log('check include', keysPathesToExclude)\n // }\n\n // if (checkExclude) {\n // console.log('check exclude', keysPathesToExclude)\n // }\n\n let fields: FormlyFieldConfig[] = [];\n\n //#region input to push\n function inputToPush(\n key: string,\n type: FormlyInputType,\n model: string,\n inptToPushOptions?: {\n targetChild?: Function;\n selectOptions?: any[];\n },\n ) {\n const { targetChild, selectOptions } = inptToPushOptions || {};\n // console.log(`key(${key}) type: ${type} | model: ${model} targetChild: ${targetChild && targetChild.name}`)\n let res: FormlyFieldConfig;\n if (type === 'repeat') {\n const fieldGroup = getFromlyConfigFor(targetChild, {\n formType,\n keysPathesToInclude,\n keysPathesToExclude,\n relativePath: `${relativePath}.${key}`,\n level: level + 1,\n maxLevel,\n });\n if (fieldGroup.length > 0) {\n res = {\n key,\n type,\n defaultValue: [],\n fieldArray: {\n fieldGroupClassName: 'row',\n templateOptions: {\n label: `Add new ${___NS__startCase(key)}`,\n },\n fieldGroup,\n },\n };\n }\n } else if (type === 'group') {\n const fieldGroup = getFromlyConfigFor(targetChild, {\n formType,\n keysPathesToInclude,\n keysPathesToExclude,\n parentModel: model,\n relativePath: `${relativePath}.${key}`,\n level: level + 1,\n maxLevel,\n });\n if (fieldGroup.length > 0) {\n res = {\n fieldGroupClassName: 'row',\n templateOptions: {\n label: `${___NS__startCase(key)}`,\n },\n wrappers: ['groupwrap'],\n fieldGroup,\n };\n }\n } else {\n res = {\n key,\n model,\n type,\n defaultValue: !___NS__isUndefined(target.prototype[key])\n ? target.prototype[key]\n : undefined,\n templateOptions: {\n label: ___NS__isString(model)\n ? `${model\n .split('.')\n .map(l => ___NS__startCase(l))\n .join(' / ')} / ${___NS__startCase(key)}`\n : ___NS__startCase(key),\n options: selectOptions,\n },\n };\n }\n if (res) {\n Object.keys(res).forEach(key =>\n res[key] === undefined ? delete res[key] : '',\n );\n }\n return res;\n }\n //#endregion\n\n //#region is allowed path\n function isAlowedPath(key: string) {\n let isAlowed = true;\n const matchPath = relativePath === '' ? key : `${relativePath}:${key}`;\n if (checkExclude) {\n if (keysPathesToExclude.includes(matchPath)) {\n // console.log(`Not allowed key: ${key}`)\n isAlowed = false;\n } else {\n isAlowed = true;\n }\n } else if (checkInclude) {\n if (keysPathesToInclude.includes(matchPath)) {\n // console.log(`Allowed key: ${key}`)\n isAlowed = true;\n } else {\n isAlowed = false;\n }\n }\n // console.log(`Is allowed;${matchPath} `, isAlowed)\n return isAlowed;\n }\n //#endregion\n\n const simpleResolved = [];\n\n //#region resolve simple types\n function resolveSimpleTypes() {\n for (const key in target.prototype) {\n if (\n target.prototype.hasOwnProperty(key) &&\n !___NS__isFunction(target.prototype[key])\n ) {\n if (!isAlowedPath(key)) {\n continue;\n }\n\n if (!___NS__isUndefined(mapping[key])) {\n continue;\n }\n\n const element = target.prototype[key];\n let type: FormlyInputType = 'input';\n if (___NS__isBoolean(element)) {\n type = 'switch';\n } else if (___NS__isDate(element)) {\n type = 'datepicker';\n } else if (___NS__isFunction(target['getOptionsFor'])) {\n var selectOptions = target['getOptionsFor'](key);\n if (!___NS__isUndefined(selectOptions)) {\n type = 'select';\n }\n } else if (___NS__isFunction(target.prototype?.getOptionsFor)) {\n var selectOptions = target.prototype?.getOptionsFor(key);\n if (!___NS__isUndefined(selectOptions)) {\n type = 'select';\n }\n }\n fields.push(inputToPush(key, type, parentModel, { selectOptions }));\n simpleResolved.push(key);\n }\n }\n }\n //#endregion\n\n //#region resolve complex types\n function resolveComplexTypes() {\n fieldNames\n .filter(key => !simpleResolved.includes(key))\n .forEach(key => {\n if (isAlowedPath(key) && !___NS__isUndefined(mapping[key])) {\n let className = mapping[key];\n const isArray = ___NS__isArray(className);\n className = isArray ? ___NS__first(className) : className;\n\n if (className === 'Date') {\n fields.push(inputToPush(key, 'datepicker', parentModel));\n } else {\n const targetChild = CLASS__NS__getBy(className);\n\n if (targetChild) {\n const ftype = findTypeForEntity(targetChild, isArray);\n\n if (ftype) {\n fields = fields.concat(\n inputToPush(key, ftype.name as any, key),\n );\n } else {\n if (isArray) {\n fields = fields.concat(\n inputToPush(key, 'repeat', key, { targetChild }),\n );\n } else {\n fields = fields.concat(\n inputToPush(key, 'group', key, { targetChild }),\n );\n }\n }\n }\n }\n }\n });\n }\n //#endregion\n\n function generate() {\n resolveSimpleTypes();\n // console.log('after simple', fields);\n resolveComplexTypes();\n // console.log('after complext', fields);\n }\n\n generate();\n return fields.filter(f => !!f);\n}\n\nexport type FormlyArrayTransformFn = (\n fieldsArray: FormlyFieldConfig[],\n fieldObject?: { [propKey: string]: FormlyFieldConfig },\n) => FormlyFieldConfig[];","import { Column, Generated } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nexport {\n Repository,\n Connection,\n Generated,\n AfterInsert,\n AfterLoad,\n AfterRecover,\n AfterRemove,\n AfterSoftRemove,\n AfterUpdate,\n BeforeInsert,\n BeforeRecover,\n BeforeRemove,\n BeforeSoftRemove,\n BeforeUpdate,\n TreeChildren,\n TreeParent,\n PrimaryGeneratedColumn,\n PrimaryColumn,\n Index,\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Column,\n VersionColumn,\n VirtualColumn,\n JoinTable,\n JoinColumn,\n OneToMany,\n OneToOne,\n ManyToMany,\n ManyToOne,\n} from 'taon-typeorm/browser-prod';\n\nexport { Column as CustomColumn } from 'taon-typeorm/browser-prod';\nexport { Generated as GeneratedColumn } from 'taon-typeorm/browser-prod';\n/**\n * 100 default characters varchar\n */\nexport const StringColumn = <T = string>(\n defaultValue: T = null,\n length = 100,\n) =>\n Column({\n type: 'varchar',\n length,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 100 characters varchar\n */\nexport const String100Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 100,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 20 characters varchar\n */\nexport const String20Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 20,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 45 characters varchar\n */\nexport const String45Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 45,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 50 characters varchar\n */\nexport const String50Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 50,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 500 characters varchar\n */\nexport const String500Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 500,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\n/**\n * 200 characters varchar\n */\nexport const String200Column = <T = string>(defaultValue: T = null) =>\n Column({\n type: 'varchar',\n length: 200,\n nullable: ___NS__isNil(defaultValue),\n default: defaultValue,\n });\n\nexport const NumberColumn = () => Column({ type: 'int', nullable: true });\n\nexport const DecimalNumberColumn = () =>\n Column({ type: 'float', nullable: true });\n\nexport const SimpleJsonColumn = () =>\n Column({ type: 'simple-json', nullable: true });\n\nexport const BooleanColumn = (defaultValue: boolean | null) =>\n Column({ type: 'boolean', nullable: true, default: defaultValue });\n\nexport const DateTimeColumn = (defaultValue: boolean | null = null) =>\n Column({ type: 'datetime', nullable: true, default: defaultValue });","import { EndpointContext } from '../endpoint-context';\nimport type { RealtimeCore } from './realtime-core';\n\n//namespace RealtimeModels\n\n export type RealtimeModels__NS__SubsManagerOpt = {\n core: RealtimeCore;\n customEvent: string;\n roomName: string;\n property: string;\n };\n\n export interface RealtimeModels__NS__ChangeOption {\n /**\n * Specify property name to listen changes on that property only;\n */\n property?: string;\n /**\n * Override custom event name to listen\n */\n customEvent?: string;\n /**\n * Value from entity object.\n * Key for this value is usually id or unique key\n * property defined in entity decorator.\n * TODO @LAST IMPLEMENT unique key support\n */\n idOrUniqValue?: any;\n }\n\n export type RealtimeModels__NS__EventHandler = (...args: any[]) => void;\n\n//end of namespace RealtimeModels\n","import {\n DefaultMapping,\n DefaultModel,\n EncodeSchema,\n ModelValue,\n} from 'ng2-rest/browser-prod';\nimport { Entity } from 'taon-typeorm/browser-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\nimport { CLASS__NS__getBy, CLASS__NS__getClassNameFromObjInstanceOrClassFn, CLASS__NS__getFromObject, CLASS__NS__getMethodsNames, CLASS__NS__getName, CLASS__NS__getNameFromObject, CLASS__NS__NAME, CLASS__NS__setClassName, CLASS__NS__setName } from 'typescript-class-helpers/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Entity decorator\n */\nexport function TaonEntity<T = any>(options?: TaonEntityOptions<T>) {\n return function (constructor: Function) {\n options = options || ({} as any);\n options.uniqueKeyProp = options.uniqueKeyProp || ('id' as any);\n\n if(!options.className) {\n const nameForClass = constructor?.name || 'AnyClass';\n throw `Please define 'classname' property inside decorator of class '${nameForClass}':\n\n @TaonEntity({\n className: '${nameForClass}'\n })\n class ${constructor?.name} {\n //...\n\n `\n }\n\n ClassHelpers__NS__setName(constructor, options?.className);\n\n DefaultMapping(options?.defaultModelMapping)(constructor as any);\n DefaultModel(options.defaultModelMapping)(constructor as any);\n\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.entity,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n/* */\n/* */\n \n CLASS__NS__setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest\n };\n}\n\nexport class TaonEntityOptions<T = any> extends DecoratorAbstractOpt {\n /**\n * default unique property is \"id\"\n * for your entity it may be something else\n */\n uniqueKeyProp?: string;\n\n createTable?: boolean;\n\n defaultModelValues?: () => ModelValue<T>;\n\n defaultModelMapping?: () => EncodeSchema<T>;\n}","import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';\n\nimport { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__PromiseObservableMix, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../../models';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Migration decorator\n */\nexport function TaonMigration(options: TaonMigrationOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.migration,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className);\n } as any;\n}\n\nexport class TaonMigrationOptions<T = any> extends DecoratorAbstractOpt {}","import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../../helpers/class-helpers';\nimport { Symbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata, Symbols__NS__old, Symbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME } from '../../symbols';\nimport { DecoratorAbstractOpt } from '../decorator-abstract-opt';\n\n/**\n * Provider decorator\n */\nexport function TaonProvider<T = any>(\n options?: TaonProviderOptions<T>,\n) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols__NS__metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols__NS__metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers__NS__setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonProviderOptions<T = any> extends DecoratorAbstractOpt {\n // providers is a singleton for each context\n}","import 'reflect-metadata'; // TODO this is needed for my decorators to work\n\nimport { RestErrorResponseWrapper } from 'ng2-rest/browser-prod';\nimport { Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, Utils__NS__binary__NS__arrayBufferToBlob, Utils__NS__binary__NS__base64toBlob, Utils__NS__binary__NS__base64toDbBinaryFormat, Utils__NS__binary__NS__blobToArrayBuffer, Utils__NS__binary__NS__blobToBase64, Utils__NS__binary__NS__blobToFile, Utils__NS__binary__NS__blobToJson, Utils__NS__binary__NS__blobToText, Utils__NS__binary__NS__dbBinaryFormatToBase64, Utils__NS__binary__NS__dbBinaryFormatToText, Utils__NS__binary__NS__fileToBlob, Utils__NS__binary__NS__fileToText, Utils__NS__binary__NS__getBlobFrom, Utils__NS__binary__NS__jsonToBlob, Utils__NS__binary__NS__textToBlob, Utils__NS__binary__NS__textToDbBinaryFormat, Utils__NS__binary__NS__textToFile, Utils__NS__camelize, Utils__NS__css__NS__numValue, Utils__NS__DbBinaryFormat, Utils__NS__DbBinaryFormatEnum, Utils__NS__DbBinaryFormatForBrowser, Utils__NS__escapeStringForRegEx, Utils__NS__fullDate, Utils__NS__fullDateTime, Utils__NS__getFreePort, Utils__NS__removeChalkSpecialChars, Utils__NS__requireUncached, Utils__NS__sortKeys, Utils__NS__uniqArray, Utils__NS__wait, Utils__NS__waitMilliseconds, UtilsOs__NS__commandExistsAsync, UtilsOs__NS__commandExistsSync, UtilsOs__NS__detectEditor, UtilsOs__NS__drawLine, UtilsOs__NS__Editor, UtilsOs__NS__EDITOR_PROCESSES, UtilsOs__NS__EditorArr, UtilsOs__NS__EditorProcess, UtilsOs__NS__getEditorSettingsJsonPath, UtilsOs__NS__getInotifyWatchCount, UtilsOs__NS__getRealHomeDir, UtilsOs__NS__isBrowser, UtilsOs__NS__isDockerAvailable, UtilsOs__NS__isElectron, UtilsOs__NS__isNode, UtilsOs__NS__isNodeVersionOk, UtilsOs__NS__isPortInUse, UtilsOs__NS__isRunningInBrowser, UtilsOs__NS__isRunningInCliMode, UtilsOs__NS__isRunningInDocker, UtilsOs__NS__isRunningInElectron, UtilsOs__NS__isRunningInLinuxGraphicsCapableEnvironment, UtilsOs__NS__isRunningInMochaTest, UtilsOs__NS__isRunningInNode, UtilsOs__NS__isRunningInOsWithGraphicsCapableEnvironment, UtilsOs__NS__isRunningInSSRMode, UtilsOs__NS__isRunningInVscodeExtension, UtilsOs__NS__isRunningInWebSQL, UtilsOs__NS__isRunningInWindows, UtilsOs__NS__isRunningInWindowsCmd, UtilsOs__NS__isRunningInWindowsPowerShell, UtilsOs__NS__isRunningInWsl, UtilsOs__NS__isRunningNodeDebugger, UtilsOs__NS__isSSRMode, UtilsOs__NS__isVscodeExtension, UtilsOs__NS__isWebSQL, UtilsOs__NS__killAllEditor, UtilsOs__NS__openFolderInFileExplorer, UtilsOs__NS__pipxNestedPackageExists, UtilsOs__NS__pipxPackageExists, UtilsOs__NS__pythonModuleExists, UtilsOs__NS__sendNotification } from 'tnp-core/browser-prod';\n\nimport * as base from './base-classes/base';\nimport * as createContextFn from './create-context';\nimport * as controllerDecorator from './decorators/classes/controller-decorator';\nimport * as entityDecorator from './decorators/classes/entity-decorator';\nimport * as middlewareDecorator from './decorators/classes/middleware-decorator';\nimport * as migrationDecorator from './decorators/classes/migration-decorator';\nimport * as providerDecorator from './decorators/classes/provider-decorator';\nimport * as repositoryDecorator from './decorators/classes/repository-decorator';\nimport * as subscriberDecorator from './decorators/classes/subscriber-decorator';\nimport * as http from './decorators/http/http-decorators';\nimport * as endpointContext from './endpoint-context';\nimport * as getResponse from './get-response-value';\nimport * as injectFn from './inject';\nimport * as models from './models';\nimport * as orm from './orm';\n// import * as allSymbols from './symbols';\n\n// export * from './build-info._auto-generated_';\nexport * from './constants';\nexport * from './context-db-migrations';\nexport * from './create-context';\nexport * from './endpoint-context-storage';\nexport * from './endpoint-context';\nexport * from './entity-process';\nexport * from './get-response-value';\n// export * from './index';\nexport * from './inject';\nexport * from './models';\nexport * from './symbols';\nexport * from './validators';\nexport * from './base-classes/base-abstract-entity';\nexport * from './base-classes/base-angular-service';\nexport * from './base-classes/base-class';\nexport * from './base-classes/base-context';\nexport * from './base-classes/base-controller';\nexport * from './base-classes/base-crud-controller';\nexport * from './base-classes/base-kv-repository';\nexport * from './base-classes/base-custom-repository';\nexport * from './base-classes/base-entity';\nexport * from './base-classes/base-file-upload.middleware';\nexport * from './base-classes/base-injector';\nexport * from './base-classes/base-middleware';\nexport * from './base-classes/base-migration';\nexport * from './base-classes/base-provider';\nexport * from './base-classes/base-repository';\nexport * from './base-classes/base-subscriber-for-entity';\nexport * from './config/controller-config';\nexport * from './config/controller-options';\nexport * from './config/method-config';\nexport * from './config/param-config';\nexport * from './decorators/decorator-abstract-opt';\nexport * from './dependency-injection/di-container';\nexport * from './formly/formly-group-wrapper.component'; // @browser\nexport * from './formly/formly-repeat.component'; // @browser\nexport * from './formly/formly.models'; // @browser\nexport * from './formly/fromly'; // @browser\nexport * from './formly/type-from-entity'; // @browser\nexport * from './helpers/class-helpers';\nexport * from './helpers/clone-obj';\nexport * from './helpers/taon-helpers';\nexport * from './orm/columns';\nexport * from './realtime/realtime-client';\nexport * from './realtime/realtime-core';\nexport * from './realtime/realtime-server';\nexport * from './realtime/realtime-subs-manager';\nexport * from './realtime/realtime.models';\nexport * from './decorators/classes/controller-decorator';\nexport * from './decorators/classes/entity-decorator';\nexport * from './decorators/classes/middleware-decorator';\nexport * from './decorators/classes/migration-decorator';\nexport * from './decorators/classes/provider-decorator';\nexport * from './decorators/classes/repository-decorator';\nexport * from './decorators/classes/subscriber-decorator';\nexport * from './decorators/http/http-methods-decorators';\nexport * from './decorators/http/http-params-decorators';\nexport * from './realtime/realtime-strategy/realtime-strategy-ipc';\nexport * from './realtime/realtime-strategy/realtime-strategy-mock';\nexport * from './realtime/realtime-strategy/realtime-strategy-socket-io';\nexport * from './realtime/realtime-strategy/realtime-strategy';\nexport * from './ui/taon-admin-mode-configuration/taon-admin.service'; // @browser\nexport * from './formly/formly-group-wrapper.component'; // @browser\nexport * from './formly/formly-repeat.component'; // @browser\n\nexport type {\n TaonClientMiddlewareInterceptOptions,\n TaonServerMiddlewareInterceptOptions,\n} from 'ng2-rest/browser-prod';\n\n// TODO export all things\n\n//namespace Taon\n\n /**\n * Remove global taon loader from env.ts [loading.preAngularBootstrap]\n */\n export const Taon__NS__removeLoader = (afterMS: number = 0): Promise<void> => {\n return new Promise<void>(resolve => {\n setTimeout(() => {\n (globalThis?.window as Window)?.document\n ?.getElementById('taonpreloadertoremove')\n ?.remove();\n\n const body = (globalThis?.window as Window)?.document?.body;\n if (body && body.style) {\n body.style.backgroundColor = '';\n }\n resolve();\n }, afterMS);\n });\n };\n\n export const Taon__NS__error = (\n opt:\n | Pick<\n RestErrorResponseWrapper,\n 'message' | 'status' | 'details' | 'code'\n >\n | string,\n ): void => {\n throw () => {\n if (typeof opt === 'string') {\n opt = {\n message: opt,\n };\n }\n return opt;\n };\n };\n\n export type Taon__NS__ResponseHtml = models.Models__NS__Http__NS__Response<string>;\n export type Taon__NS__Response<T = string> = models.Models__NS__Http__NS__Response<T>;\n // TODO new 5.8 typescript is not allowing this\n // export import Http = http.Http;\n // export import Base = base.Base;\n // export import Orm = orm.Orm;\n\n export type Taon__NS__StartParams = models.Models__NS__StartParams;\n export const Taon__NS__getResponseValue = getResponse.getResponseValue;\n\n //#region class decorators\n // TODO new 5.8 typescript is not allowing this\n // export import Controller = controllerDecorator.TaonController;\n // export import Entity = entityDecorator.TaonEntity;\n // export import Provider = providerDecorator.TaonProvider;\n // export import Repository = repositoryDecorator.TaonRepository;\n // export import Subscriber = subscriberDecorator.TaonSubscriber;\n // export import Migration = migrationDecorator.TaonMigration;\n // export import Middleware = middlewareDecorator.TaonMiddleware;\n //#endregion\n\n //#region aliases to helpers\n export const Taon__NS__isBrowser = UtilsOs__NS__isBrowser;\n export const Taon__NS__isNode = UtilsOs__NS__isNode;\n export const Taon__NS__isWebSQL = UtilsOs__NS__isWebSQL;\n export const Taon__NS__isElectron = UtilsOs__NS__isElectron;\n //#endregion\n export const Taon__NS__createContext = createContextFn.createContext;\n export const Taon__NS__createContextTemplate = createContextFn.createContextTemplate;\n\n export const Taon__NS__inject = injectFn.inject;\n\n /**\n * @deprecated\n * use createContext instead\n */\n export const Taon__NS__init = async (options: {\n host: string;\n entities: Function[];\n controllers: Function[];\n }) => {\n const TaonBaseContext = (await import('./base-classes/base-context'))\n .TaonBaseContext;\n const context = Taon__NS__createContext(() => ({\n appId: 'default-app-not-used-anymore',\n contextName: 'default',\n host: options.host,\n contexts: { TaonBaseContext },\n database: true,\n entities: Array.from(options.entities) as any,\n controllers: Array.from(options.controllers) as any,\n }));\n\n await context.initialize();\n return context;\n };\n\n//end of namespace Taon\n\n\n//#region taon flattening map\nexport const TAON_FLATTEN_MAPPING = {\n 'taon/src': {\n // =====================\n // Taon.Http.*\n // =====================\n 'Taon.Http.GET': 'GET',\n 'Taon.Http.POST': 'POST',\n 'Taon.Http.PUT': 'PUT',\n 'Taon.Http.DELETE': 'DELETE',\n 'Taon.Http.PATCH': 'PATCH',\n 'Taon.Http.HEAD': 'HEAD',\n 'Taon.Http.HTML': 'HTML',\n 'Taon.Http.Response': 'HttpResponse',\n\n 'Taon.Http.Param.Query': 'Query',\n 'Taon.Http.Param.Path': 'Path',\n 'Taon.Http.Param.Body': 'Body',\n 'Taon.Http.Param.Cookie': 'Cookie',\n 'Taon.Http.Param.Header': 'Header',\n\n // =====================\n // Taon.Base.*\n // =====================\n 'Taon.Base.Controller': 'TaonBaseController',\n 'Taon.Base.CrudController': 'TaonBaseCrudController',\n 'Taon.Base.Entity': 'TaonBaseEntity',\n 'Taon.Base.AbstractEntity': 'TaonBaseAbstractEntity',\n 'Taon.Base.AbstractEntityOmitKeys': 'AbstractEntityOmitKeys',\n 'Taon.Base.Provider': 'TaonBaseProvider',\n 'Taon.Base.Class': 'TaonBaseClass',\n 'Taon.Base.Repository': 'TaonBaseRepository',\n 'Taon.Base.CustomRepository': 'TaonBaseCustomRepository',\n 'Taon.Base.SubscriberForEntity': 'TaonBaseSubscriberForEntity',\n 'Taon.Base.Migration': 'TaonBaseMigration',\n 'Taon.Base.Middleware': 'TaonBaseMiddleware',\n 'Taon.Base.AngularService': 'TaonBaseAngularService',\n 'Taon.Base.Context': 'TaonBaseContext',\n\n // =====================\n // Taon.Controller.* (decorators)\n // =====================\n 'Taon.Controller': 'TaonController',\n 'Taon.Entity': 'TaonEntity',\n 'Taon.Provider': 'TaonProvider',\n 'Taon.Repository': 'TaonRepository',\n 'Taon.Subscriber': 'TaonSubscriber',\n 'Taon.Migration': 'TaonMigration',\n 'Taon.Middleware': 'TaonMiddleware',\n\n // =====================\n // Taon.Orm.*\n // =====================\n 'Taon.Orm.Repository': 'Repository',\n 'Taon.Orm.Connection': 'Connection',\n\n // ListenEvent\n 'Taon.Orm.ListenEvent.AfterInsert': 'AfterInsert',\n 'Taon.Orm.ListenEvent.AfterLoad': 'AfterLoad',\n 'Taon.Orm.ListenEvent.AfterRecover': 'AfterRecover',\n 'Taon.Orm.ListenEvent.AfterRemove': 'AfterRemove',\n 'Taon.Orm.ListenEvent.AfterSoftRemove': 'AfterSoftRemove',\n 'Taon.Orm.ListenEvent.AfterUpdate': 'AfterUpdate',\n 'Taon.Orm.ListenEvent.BeforeInsert': 'BeforeInsert',\n 'Taon.Orm.ListenEvent.BeforeRecover': 'BeforeRecover',\n 'Taon.Orm.ListenEvent.BeforeRemove': 'BeforeRemove',\n 'Taon.Orm.ListenEvent.BeforeSoftRemove': 'BeforeSoftRemove',\n 'Taon.Orm.ListenEvent.BeforeUpdate': 'BeforeUpdate',\n\n // Tree\n 'Taon.Orm.Tree.Children': 'TreeChildren',\n 'Taon.Orm.Tree.Parent': 'TreeParent',\n\n // Column\n 'Taon.Orm.Column.Generated': 'Generated',\n 'Taon.Orm.Column.Primary': 'PrimaryColumn',\n 'Taon.Orm.Column.Index': 'Index',\n 'Taon.Orm.Column.CreateDate': 'CreateDateColumn',\n 'Taon.Orm.Column.UpdateDate': 'UpdateDateColumn',\n 'Taon.Orm.Column.DeleteDate': 'DeleteDateColumn',\n 'Taon.Orm.Column.Custom': 'Column',\n\n 'Taon.Orm.Column.String': 'StringColumn',\n 'Taon.Orm.Column.String100': 'String100Column',\n 'Taon.Orm.Column.String45': 'String45Column',\n 'Taon.Orm.Column.String500': 'String500Column',\n 'Taon.Orm.Column.String200': 'String200Column',\n 'Taon.Orm.Column.Number': 'NumberColumn',\n 'Taon.Orm.Column.DecimalNumber': 'DecimalNumberColumn',\n 'Taon.Orm.Column.SimpleJson': 'SimpleJsonColumn',\n 'Taon.Orm.Column.Boolean': 'BooleanColumn',\n 'Taon.Orm.Column.DateTIme': 'DateTimeColumn',\n\n 'Taon.Orm.Column.Version': 'VersionColumn',\n 'Taon.Orm.Column.Virtual': 'VirtualColumn',\n\n // Join\n 'Taon.Orm.Join.Table': 'JoinTable',\n 'Taon.Orm.Join.Column': 'JoinColumn',\n\n // Relation\n 'Taon.Orm.Relation.OneToMany': 'OneToMany',\n 'Taon.Orm.Relation.OneToOne': 'OneToOne',\n 'Taon.Orm.Relation.ManyToMany': 'ManyToMany',\n 'Taon.Orm.Relation.ManyToOne': 'ManyToOne',\n },\n 'taon-storage/src': {\n // =====================\n // Stor.* (new clean API)\n // =====================\n 'Stor.Property.In.LocalStorage': 'StorPropertyInLocalStorage',\n 'Stor.Property.In.IndexedDb': 'StorPropertyInIndexedDb',\n\n // short alias style (if you prefer this pattern in some codebases)\n 'Stor.In.LocalStorage': 'StorPropertyInLocalStorage',\n 'Stor.In.IndexedDb': 'StorPropertyInIndexedDb',\n\n // =====================\n // Stor.property.in.* (back-compat chain you mentioned)\n // =====================\n 'Stor.property.in.localstorage': 'StorPropertyInLocalStorage',\n 'Stor.property.in.indexedb': 'StorPropertyInIndexedDb',\n 'Stor.property.in.indexedDb': 'StorPropertyInIndexedDb',\n\n // Optional: if your old code had Stor.proper... (typo)\n 'Stor.proper.in.localstorage': 'StorPropertyInLocalStorage',\n 'Stor.proper.in.indexedb': 'StorPropertyInIndexedDb',\n },\n} satisfies Record<string, Record<string, string>>;\n//#endregion","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["inject","this","taonInject","i1","getResponse.getResponseValue","createContextFn.createContext","createContextFn.createContextTemplate","injectFn.inject"],"mappings":"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"}