{"version":3,"file":"morphi.mjs","sources":["../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/models.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/formly-repeat-component.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/formly-group-wrapper-component.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/symbols.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/helpers.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-context-base.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/realtime/realtime.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/realtime/realtime-browser-rxjs.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-context-browser-app.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-context.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/init-method/init-method-browser.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/init-method/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/activate-base-crud.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/decorators/decorators-endpoint-class.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/decorators/decorators-methods.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/decorators/decorators-params.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/base-crud-model.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/type-from-entity.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/fromly.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/formly.models.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/pagination-config.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/crud/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/decorators/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-helpers.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-controller.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-entity.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-repository.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-start.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/framework-models.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/framework/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/realtime/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/lib/index.ts","../../../tmp-libs-for-dist/morphi/projects/morphi/src/morphi.ts"],"sourcesContent":["\n\nimport { Response, RequestHandler } from 'express';\nimport { Response as ExpressResponse, Request as ExpressRequest } from 'express';\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\n\n\nimport { CLASS } from 'typescript-class-helpers/browser';\n\n\nexport namespace Models {\n\n  export import Rest = ModelsNg2Rest;\n\n  export type ContextENDPOINT = { target: Function; initFN: Function; };\n\n  export type FormlyFromType = 'material' | 'bootstrap';\n\n\n  export type ExpressContext<T> = (req: ExpressRequest, res: ExpressResponse) => T;\n\n  export type SyncResponse<T> = string | T;\n\n  export type ResponseFuncOpt<T> = {\n    limitSize?: (enties: Function | Function[], include: string[], exclude: string[]) => void;\n  }\n\n  export type SyncResponseFunc<T> = (options?: ResponseFuncOpt<T>) => SyncResponse<T>;\n  export type MixResponse<T> = SyncResponse<T> | ExpressContext<T>;\n\n  export interface ClientAction<T> {\n    received?: Rest.PromiseObservableMix<Rest.HttpResponse<T>>;\n  }\n\n  export interface __Response<T> {\n/* */\n/* */\n  \n  }\n\n  export interface AsyncResponse<T> {\n    (req?: ExpressRequest, res?: ExpressResponse): Promise<SyncResponse<T> | SyncResponseFunc<T>>;\n  }\n\n  export type Response<T = string> = (__Response<T> | AsyncResponse<T>) & ClientAction<T> & __Response<T>;\n\n  export class Errors {\n\n    public toString = (): string => {\n      return this.message\n    }\n\n    private constructor(public message: string, private code: ModelsNg2Rest.HttpCode = 400) {\n\n    }\n\n    private static create(message: string, code: ModelsNg2Rest.HttpCode = 400) {\n      return new Errors(message, code);\n    }\n\n    public static entityNotFound(entity?: Function) {\n      return Errors.create(`Entity ${CLASS.getName(entity)} not found`);\n    }\n\n    public static custom(message: string, code: ModelsNg2Rest.HttpCode = 400) {\n      return Errors.create(message, code);\n    }\n\n  }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/models.ts","\n\nimport { 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\n@Component({\n  selector: 'formly-repeat-section',\n  template: `\n    <div  *ngIf=\"field.fieldGroup && field.fieldGroup.length === 0\" >\n      Press button to add new element...\n    </div>\n    <div *ngFor=\"let field of field.fieldGroup; let i = index;\" class=\"firedev-formly-array\"  >\n      <formly-group\n        [model]=\"model[i]\"\n        [field]=\"field\"\n        [options]=\"options\"\n        [form]=\"formControl\">\n        <div>\n          <button class=\"btn btn-danger\" type=\"button\" (click)=\"remove(i)\">Remove</button>\n        </div>\n      </formly-group>\n    </div>\n    <div>\n      <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\">{{ labelTemplate }}</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      .firedev-formly-array {\n        padding: 5px;\n        background: white;\n      }\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 @LAST\n  }\n  constructor(builder: FormlyFormBuilder) { // TODO QUICK_FIX\n    // @ts-ignore\n    super(builder);\n  }\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/formly-repeat-component.ts","\n\nimport { Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n@Component({\n  selector: 'formly-horizontal-wrapper',\n  template: `\n    <div class=\"form-group row\">\n      <label [attr.for]=\"id\" class=\"col-sm-2 col-form-label\" *ngIf=\"to.label\">\n        {{ to.label }}\n        <ng-container *ngIf=\"to.required && to.hideRequiredMarker !== true\">*</ng-container>\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 }) fieldComponent: ViewContainerRef;\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/formly-group-wrapper-component.ts","\n\nimport { _ } from 'tnp-core/browser';\n\nexport const SYMBOL = {\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  REALTIME: {\n    NAMESPACE: 'firedevrealtime',\n    TABLE_CHANGE(tableName: string) {\n      return `listentablename${tableName}`;\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    */\n    ROOM_NAME: { // it identifys group of client to notify\n      CUSTOM(customEvent: string) {\n        return `roomcustomevnet${customEvent}`;\n      },\n      UPDATE_ENTITY(className: string, entityId: number | string) {\n        return `room${_.camelCase(className)}${entityId}`.toLowerCase();\n      },\n      UPDATE_ENTITY_PROPERTY(className: string, property: string, entityId: number | string) {\n        return `room${_.camelCase(className)}${_.camelCase(property)}${entityId}`.toLowerCase();\n      },\n\n      SUBSCRIBE: {\n        CUSTOM: 'roomSubscribeCustomRoomEvent',\n        ENTITY_UPDATE_EVENTS: 'roomSubscribeEntityEvents',\n        ENTITY_PROPERTY_UPDATE_EVENTS: 'roomSubscribeEntityPropertyEvents',\n      },\n      UNSUBSCRIBE: {\n        CUSTOM: 'roomUnsubscribeCustomRoomEvent',\n        ENTITY_UPDATE_EVENTS: 'roomUnsubscribeEntityEvents',\n        ENTITY_PROPERTY_UPDATE_EVENTS: 'roomUnsubscribeEntityPropertyEvents',\n      }\n    }\n  },\n  X_TOTAL_COUNT: 'x-total-count',\n  CRUD_TABLE_MODEL: 'model',\n  CRUD_TABLE_MODELS: 'models',\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-file-for-module=morphi lib/symbols.ts","\n\n\nimport { Helpers, _, crossPlatformPath } from 'tnp-core/browser';\n/* */\n/* */\n  \n/* */\n/* */\n/* */\n/* */\n  \n\nimport * as JSON5 from 'json5';\nimport { Helpers as HelpersNg2Rest } from 'ng2-rest/browser';\nimport { Models } from './models';\n\n/* */\n/* */\n  \nimport { CLASS } from 'typescript-class-helpers/browser';\n\n\nexport class MorphiHelpers extends HelpersNg2Rest {\n\n\n\n\n  static string(s: string) {\n    return {\n      fillUpTo(nCharacters: number) {\n        return _.times(nCharacters, n => {\n          if (s.charAt(n)) {\n            return s.charAt(n);\n          }\n          return ' ';\n        }).join('')\n      }\n    }\n  }\n\n\n\n  static isGoodPath(p: string) {\n    return p && typeof p === 'string' && p.trim() !== ''\n  }\n\n\n\n  static getPathFor(target: Function) {\n    const configs = CLASS.getConfigs(target) as any[];\n\n    const classConfig: Models.Rest.ClassConfig = configs[0];\n    const parentscalculatedPath = _\n      .slice(configs, 1)\n      .reverse()\n      .map(bc => {\n        if (MorphiHelpers.isGoodPath(bc.path)) {\n          return bc.path\n        }\n        return CLASS.getName(bc.classReference);\n      }).join('/');\n\n    return `/${parentscalculatedPath}/${CLASS.getName(target)}`;\n  }\n\n\n\n  static hasParentClassWithName(target: Function, name: string, targets = []): boolean {\n    if (!target) {\n\n      return false;\n    }\n    targets.push(target)\n    let targetProto = target['__proto__'] as Function;\n    if (_.isFunction(targetProto) && CLASS.getName(targetProto) === name) {\n\n      return true;\n    }\n    return this.hasParentClassWithName(targetProto, name, targets);\n  }\n\n\n\n  static 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\n\n\n  static getExpressPath(c: Models.Rest.ClassConfig, pathOrClassConfig: Models.Rest.MethodConfig | string) {\n    if (typeof pathOrClassConfig === 'string') return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '')\n    return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '')\n  }\n\n\n\n  static 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\n\n\n  static parseJSONwithStringJSONs(object: Object, waring = false): Object {\n\n    if (!_.isObject(object)) {\n      if (waring) {\n        console.error(`\n        parseJSONwithStringJSONs(...)\n        Parameter should be a object, but is ${typeof object}\n        `, object)\n      }\n\n      return object;\n    }\n\n    let res = _.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\n      if (isJson) {\n        res[key] = this.parseJSONwithStringJSONs(res[key], false)\n      }\n    });\n\n    return res;\n  }\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n\n\n/* */\n/* */\n/* */\n/* */\n  \n\n\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/helpers.ts","\n\n\nexport class FrameworkContextBase {\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-context-base.ts","\n\nimport { Socket } from 'socket.io'\nimport * as socketio from 'socket.io'\nimport { FrameworkContext } from '../framework/framework-context';\nimport type { BroadcastApiIoMockServer } from './broadcast-api-io-mock-server';\nimport type { BroadcastApiIoMockClient } from './broadcast-api-io-mock-client';\n\nexport class RealtimeBase {\n\n  private static contexts = [];\n  private static instances = [];\n  public static by(context: FrameworkContext): RealtimeBase {\n    const indexContext = this.contexts.findIndex(c => c === context);\n    if (indexContext === -1) {\n      this.contexts.push(context);\n      const instance = new RealtimeBase(context)\n      this.instances.push(instance);\n      return instance;\n    } else {\n      return this.instances[indexContext];\n    }\n  }\n\n  public FE: BroadcastApiIoMockClient; //  Socket; // TODO QUICK_FIX\n  public FE_REALTIME: BroadcastApiIoMockClient; //  Socket; // TODO QUICK_FIX;\n/* */\n/* */\n/* */\n  \n\n\n  private constructor(protected context: FrameworkContext) {\n\n  }\n\n  public pathFor(namespace?: string) {\n    const uri = this.context.uri;\n    const nsp = namespace ? namespace : '';\n    const pathname = uri.pathname !== '/' ? uri.pathname : '';\n    const prefix = `socketnodejs`;\n    const href = `${uri.origin}${pathname}/${prefix}${nsp}`;\n\n    return new URL(href) as URL;\n  }\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/realtime/realtime.ts","\n\nimport * as _ from 'lodash';\nimport { Level, Log } from 'ng2-logger/browser';\nimport { Subscriber } from \"rxjs\";\nimport { Helpers } from 'tnp-core/browser';\nimport { FrameworkContext } from \"../framework/framework-context\";\nimport { SYMBOL } from \"../symbols\";\nimport type { BroadcastApiIoMockClient } from './broadcast-api-io-mock-client';\n\nimport { RealtimeBase } from \"./realtime\";\n/* */\n/* */\n  \n\nconst log = Log.create('REALTIME SUBS MANAGER',\n  Level.__NOTHING\n)\n\nexport type SubscribtionRealtime = {\n  context: FrameworkContext;\n  customEvent: string;\n  roomName: string;\n  property: string;\n}\nexport class RealtimeSubsManager {\n\n  private static idFrm(options: SubscribtionRealtime) {\n    const url = new URL(options.context.host);\n    return `${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n  }\n  private static roomSubs = {};\n  public static from(options: SubscribtionRealtime) {\n    const pathToInstance = RealtimeSubsManager.idFrm(options);\n    if (!RealtimeSubsManager.roomSubs[pathToInstance]) {\n      RealtimeSubsManager.roomSubs[pathToInstance] = new RealtimeSubsManager(options);\n    }\n    return RealtimeSubsManager.roomSubs[pathToInstance] as RealtimeSubsManager;\n  }\n\n  private isListening = false;\n  private constructor(private options: SubscribtionRealtime) { }\n\n  private observers: Subscriber<any>[] = []\n\n  startListenIfNotStarted(realtime: BroadcastApiIoMockClient) {\n\n    if (this.options.context.disabledRealtime) {\n      console.warn(`[Firedev][startListenIfNotStarted] sockets are disabled`)\n      return;\n    }\n\n    if (!realtime) {\n      console.warn(`[Firedev][startListenIfNotStarted] invalid socket connection`)\n      return;\n    }\n\n    if (!this.isListening) {\n\n      log.i(`subscribe to ${this.options?.roomName}`, this.options)\n      this.isListening = true;\n\n      if (this.options.customEvent) { // this means: send to current client custom event notification\n        realtime.emit(SYMBOL.REALTIME.ROOM_NAME.SUBSCRIBE.CUSTOM, this.options.roomName);\n      } else {\n        if (_.isString(this.options.property)) {\n\n          realtime.emit(SYMBOL.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS, this.options.roomName);\n        } else {\n\n          realtime.emit(SYMBOL.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_UPDATE_EVENTS, this.options.roomName);\n        }\n      }\n\n\n      realtime.on(this.options.roomName, (data) => {\n\n        this.update(data);\n      });\n    }\n  }\n\n  add(observer: Subscriber<any>) {\n\n    this.observers.push(observer);\n  }\n\n  remove(observer: Subscriber<any>) {\n\n    this.observers = this.observers.filter(obs => obs !== observer);\n    if (this.observers.length === 0) {\n\n      this.isListening = false;\n      const { context, customEvent, roomName, property } = this.options;\n      const base = RealtimeBase.by(context);\n      const realtime = base.FE_REALTIME;\n\n      if (customEvent) {\n        realtime.emit(SYMBOL.REALTIME.ROOM_NAME.UNSUBSCRIBE.CUSTOM, roomName)\n      } else {\n        if (_.isString(property)) {\n          realtime.emit(SYMBOL.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS, roomName)\n        } else {\n          realtime.emit(SYMBOL.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_UPDATE_EVENTS, roomName)\n        }\n      }\n    }\n  }\n\n  private update(data: any) {\n\n\n    const ngZone = this.options.context.ngZone;\n\n\n    this.observers.forEach(observer => {\n\n      if (!observer.closed) {\n        if (ngZone) {\n          ngZone.run(() => {\n            observer.next(data);\n          })\n        } else {\n          observer.next(data);\n        }\n      }\n    });\n  }\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/realtime/realtime-subs-manager.ts","\n\nimport { Level, Log } from \"ng2-logger/browser\";\nimport { FrameworkContext } from \"../framework/framework-context\";\nimport { SYMBOL } from \"../symbols\";\nimport { RealtimeBase } from \"./realtime\";\nimport { Helpers, _ } from 'tnp-core/browser';\nimport * as ioClientIo from 'socket.io-client';\nimport { CLASS } from \"typescript-class-helpers/browser\";\nimport { Observable, Subscriber } from 'rxjs';\nimport { RealtimeSubsManager, SubscribtionRealtime } from \"./realtime-subs-manager\";\n/* */\n/* */\n  \n\nconst log = Log.create('REALTIME RXJS',\n  Level.__NOTHING\n);\n\n\n\nexport type RealtimeBrowserRxjsOptions = {\n  property?: string\n  overrideContext?: FrameworkContext;\n  customEvent?: string;\n};\n\n\nexport class RealtimeBrowserRxjs {\n\n\n  constructor(private context: FrameworkContext) {\n\n    const base = RealtimeBase.by(context);\n\n    if (!context.disabledRealtime) {\n\n      let io\n/* */\n/* */\n  \n        = ioClientIo?.default ? ioClientIo.default : ioClientIo;\n\n      if (Helpers.isWebSQL) {\n        // @ts-ignore\n        io = mockIoClient;\n      }\n\n      const nspPath = {\n        global: base.pathFor(),\n        realtime: base.pathFor(SYMBOL.REALTIME.NAMESPACE)\n      };\n\n      log.i('[CLIENT] NAMESPACE GLOBAL ', nspPath.global.href + ` host: ${context.host}`)\n      log.i('[CLIENT] NAMESPACE REALTIME', nspPath.realtime.href + ` host: ${context.host}`)\n\n      const global = io.connect(nspPath.global.origin, {\n        path: nspPath.global.pathname\n      });\n\n      base.FE = global as any;\n\n      global.on('connect', () => {\n        log.i(`[CLIENT] conented to GLOBAL namespace ${global.nsp} of host: ${context.host}`)\n      });\n\n\n\n      const realtime = io.connect(nspPath.realtime.origin, {\n        path: nspPath.realtime.pathname\n      }) as any;\n\n      base.FE_REALTIME = realtime;\n\n      realtime.on('connect', () => {\n        log.i(`[CLIENT] conented to REALTIME namespace ${realtime.nsp} host: ${context.host}`)\n      });\n\n\n    }\n\n\n\n  }\n\n\n\n  /**\n   * Changes trigger on backend needs to be done manually.. example code:\n   *\n   * ...\n   * Firedev.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n   * ...\n   */\n  static listenChangesEntity(entityClassFn, idOrUniqValue: any, options?: RealtimeBrowserRxjsOptions) {\n    options = options || {} as any;\n\n\n    const { property, customEvent } = options;\n    const className = !customEvent && CLASS.getName(entityClassFn);\n\n    if (_.isString(property)) {\n      if (property.trim() === '') {\n        throw new Error(`[Firedev][listenChangesEntity.. incorect property '' for ${className}`);\n      }\n    }\n\n\n    return new Observable((observer) => {\n\n\n      const context = options.overrideContext\n        ? options.overrideContext\n        : FrameworkContext.findForTraget(entityClassFn);\n\n      if (context.disabledRealtime) {\n        Helpers.error(`[Firedev][realtime rxjs] remove firedev config flag:\n\n        ...\n        disabledRealtime: true\n        ...\n\nto use socket realtime connection;\n        `)\n        return () => {\n\n        };\n      }\n      const base = RealtimeBase.by(context);\n      const realtime = base.FE_REALTIME;\n      let roomName: string;\n\n      if (customEvent) {\n        roomName = SYMBOL.REALTIME.ROOM_NAME.CUSTOM(customEvent);\n      } else {\n        roomName = _.isString(property) ?\n          SYMBOL.REALTIME.ROOM_NAME.UPDATE_ENTITY_PROPERTY(className, property, idOrUniqValue) :\n          SYMBOL.REALTIME.ROOM_NAME.UPDATE_ENTITY(className, idOrUniqValue);\n      }\n\n      const roomSubOptions: SubscribtionRealtime = {\n        context,\n        property,\n        roomName,\n        customEvent,\n      };\n\n\n      const inst = RealtimeSubsManager.from(roomSubOptions);\n      inst.add(observer);\n\n      inst.startListenIfNotStarted(realtime);\n\n      return () => {\n        inst.remove(observer);\n      };\n    });\n  }\n\n\n\n\n  static listenChangesEntityTable(entityClassFn: Function) {\n    const className = CLASS.getName(entityClassFn);\n    return RealtimeBrowserRxjs.listenChangesEntity(entityClassFn, void 0, {\n      customEvent: SYMBOL.REALTIME.TABLE_CHANGE(className),\n    })\n  }\n\n\n\n\n  /**\n  * Changes trigger on backend needs to be done manually.. example code:\n  *\n  * ...\n  * Firedev.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n  * // or\n  * Firedev.Realtime.Server.TrigggerEntityPropertyChanges(myEntityInstance,{ property: 'geolocationX' });\n  * ...\n  */\n  static listenChangesEntityObj(entity, options?: RealtimeBrowserRxjsOptions) {\n    const classFn = CLASS.getFromObject(entity);\n    const config = CLASS.getConfig(classFn);\n    return RealtimeBrowserRxjs.listenChangesEntity(classFn, entity[config.uniqueKey], options);\n  }\n\n\n\n  static listenChangesCustomEvent(context: FrameworkContext, customEvent: string) {\n    return RealtimeBrowserRxjs.listenChangesEntity(void 0, void 0, {\n      overrideContext: context,\n      customEvent,\n    });\n  }\n\n  listenChangesCustomEvent(customEvent: string) {\n    return RealtimeBrowserRxjs.listenChangesCustomEvent(this.context, customEvent);\n  }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/realtime/realtime-browser-rxjs.ts","\n\nimport type { FrameworkContext } from './framework-context';\nimport { Helpers } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { SYMBOL } from '../symbols';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { FrameworkContextBase } from './framework-context-base';\nimport { RealtimeBrowserRxjs } from '../realtime/realtime-browser-rxjs';\n\nexport class FrameworkContextBrowserApp extends FrameworkContextBase {\n\n  readonly realtimerxjs: RealtimeBrowserRxjs;\n  constructor(\n    private context: FrameworkContext) {\n    super();\n  }\n\n  init() {\n    if ((Helpers.isBrowser && !Helpers.isWebSQL)\n/* */\n/* */\n  \n    ) {\n      const notFound: Function[] = [];\n      const providers = this.context.controllersClasses.filter(ctrl => {\n\n        const e = this.context.initFunc.find(e => ctrl === e.target);\n        if (e) {\n\n          e.initFN();\n          return true;\n        } else {\n          const context: Models.ContextENDPOINT = ctrl.prototype[SYMBOL.CLASS_DECORATOR_CONTEXT];\n          if (!context) {\n            notFound.push(ctrl);\n            return false;\n          } else {\n            context.initFN();\n            return true;\n          }\n        }\n      })\n      notFound.forEach(ctrl => {\n        throw `\n\nDecorator \"@ENDPOINT(..)\" is missing on class ${CLASS.getName(ctrl)}\n\nor you are trying to use Entity as Controller\n\n`;\n      });\n      providers.forEach(p => this.context.Providers.push(p))\n    }\n\n    if (Helpers.isBrowser\n/* */\n/* */\n  \n/* */\n/* */\n  \n    ) {\n      //@ts-ignore\n\n      //@ts-ignore\n      this.realtimerxjs = new RealtimeBrowserRxjs(this.context);\n    }\n\n  }\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-context-browser-app.ts","\n\nimport { _, Helpers } from 'tnp-core/browser';\nimport { StartOptions, FrameworkMode, MiddlewareType } from './framework-models';\nimport { FrameworkContextBrowserApp } from './framework-context-browser-app';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { IConnectionOptions } from './framework-models';\nimport { FrameworkContextBase } from './framework-context-base';\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\nimport type { BASE_CONTROLLER } from './framework-controller';\nimport { BaseCRUD } from '../crud';\nimport { SYMBOL } from '../symbols';\n\nexport class FrameworkContext extends FrameworkContextBase {\n\n  public static readonly initFunc: { initFN: Function, target: Function }[] = [];\n  get initFunc() {\n    return FrameworkContext.initFunc.filter(a => this.controllersClasses.includes(a.target));\n  }\n\n\n\n\n\n\n\n\n\n\n  public readonly Providers: Function[] = [];\n\n  private static readonly ngZoneInstance: any;\n\n  public static get isNgZoneInited() {\n    return !!FrameworkContext.ngZoneInstance;\n  }\n  public static initNGZone(ngZoneInstance: any) {\n    if (ngZoneInstance) {\n      // @ts-ignore\n      FrameworkContext.ngZoneInstance = ngZoneInstance;\n    }\n  }\n  private static contextByClassName: { [className in string]: FrameworkContext; } = {};\n  public static get contexts(): FrameworkContext[] {\n\n    const res = _.sortedUniq(Object\n      .keys(FrameworkContext.contextByClassName)\n      .map(className => FrameworkContext.contextByClassName[className]));\n\n    return res;\n  }\n\n  static destroy(context: FrameworkContext) {\n    Object\n      .keys(FrameworkContext.contextByClassName)\n      .forEach(className => {\n        const c = FrameworkContext.contextByClassName[className];\n        if (c.host === context.host) {\n          delete FrameworkContext.contextByClassName[className];\n        }\n      });\n    debugger;\n  }\n\n  destroy() {\n    FrameworkContext.destroy(this);\n  }\n\n  public static findByHost(host: string) {\n    const uri = new URL(host);\n    return FrameworkContext.contexts.find(c => c.uri.host === uri.host);\n  }\n\n  /**\n   * Get global context for target\n   * @param target class name or class function or class object\n   */\n  public static findForTraget(target: Function | object | string): FrameworkContext {\n    let className: string;\n    if (_.isArray(target)) {\n      throw new Error(`[Firedev][findForTraget] incorrect target:\n      shoould be string, function or object\n      `)\n    }\n    if (_.isFunction(target)) {\n      className = CLASS.getName(target);\n    } else if (_.isObject(target)) {\n      className = CLASS.getNameFromObject(target);\n    } else if (_.isString(target)) {\n      className = target;\n    }\n    if (!className) {\n      if (Helpers.isBrowser) {\n        throw new Error(`[Firedev][findForTarget] incorrect/missing class name: \"${className}\"`)\n      } else {\n/* */\n/* */\n  \n      }\n\n    }\n\n    const result = FrameworkContext.contextByClassName[className];\n    if (!result) {\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n\n      if (Helpers.isBrowser) {\n        throw new Error(`[Firedev][findForTarget] not able to find target by name: \"${className}\"`)\n      } else {\n/* */\n/* */\n  \n      }\n\n    }\n    return result;\n  }\n\n  private static _isProductionModeAlreadySet = false;\n  private static readonly _isProductionMode = false;\n  public static get isProductionMode() {\n    return FrameworkContext._isProductionMode;\n  }\n\n  public static set isProductionMode(v: boolean) {\n    if (!FrameworkContext._isProductionModeAlreadySet) {\n      FrameworkContext._isProductionModeAlreadySet = true;\n    } else {\n      throw `[Firedev] production mode already set`\n    }\n    // @ts-ignore\n    FrameworkContext._isProductionMode = v;\n  }\n\n  public readonly uri: URL;\n  private readonly context: StartOptions;\n  public readonly allowedHosts: URL[] = [];\n  public readonly disabledRealtime = false;\n  public browser: FrameworkContextBrowserApp;\n/* */\n/* */\n  \n\n\n  public get ngZone() {\n    return FrameworkContext.ngZoneInstance;\n  }\n\n  public get host() {\n    return this.context.host;\n  }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n  public get controllersClasses() {\n    return [\n      ...(this.context.controllers as any[]),\n    ]\n  }\n\n  public get allControllersInstances(): (object)[] {\n    let ctrls: Function[] = this.context.controllers as any;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    return ctrls.map(c => this.getInstanceBy(c as any)).filter(f => !!f);\n  }\n\n  public get crudControllersInstances(): BASE_CONTROLLER<any>[] {\n    return this.allControllersInstances.filter(c => {\n      return c instanceof BaseCRUD;\n    }).map(c => {\n      return c as BASE_CONTROLLER<any>;\n    });\n  }\n\n  private instances = {};\n\n  /**\n   * Get controller instace by name of class function\n   */\n  public getInstanceBy(ctrlClassOrName: Function | string) {\n    if (!ctrlClassOrName) {\n      return;\n    }\n    const className = _.isString(ctrlClassOrName) ? ctrlClassOrName : CLASS.getName(ctrlClassOrName);\n    if (!this.instances[className]) {\n      this.instances[className] = new (ctrlClassOrName as any)();\n    }\n    return this.instances[className] as (object | BASE_CONTROLLER<any>)\n  }\n\n  public get entitiesClasses() {\n    return (this.context.entities as Function[]) || [];\n  }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n  constructor(context: StartOptions) {\n    super();\n    this.context = context;\n    this.initUrl();\n    this.checkContextIfExists();\n    validateClassFunctions(context.controllers, context.entities);\n    this.prepareControllers();\n\n    if (_.isArray(context.allowedHosts)) {\n      context.allowedHosts.forEach(h => this.allowedHosts.push(new URL(h)));\n    }\n    if (_.isBoolean(context.disabledRealtime) && context.disabledRealtime) {\n      // @ts-ignore\n      this.disabledRealtime = true;\n    }\n/* */\n/* */\n  \n    this.prepareEntities();\n  }\n\n\n  private prepareEntities() {\n/* */\n/* */\n/* */\n/* */\n  \n    this.entitiesClasses\n      .forEach(c => {\n        const className = CLASS.getName(c);\n        if (FrameworkContext.contextByClassName[className]) {\n          throw new Error(`[Firedev][frameworkcontext]\n${SYMBOL.ERROR_MESSAGES.CLASS_NAME_MATCH}\n\n          Context already register for class \"${className}\"\nThis is class names based framework....\nYou can create subclass from this class to fix this\n\n@Morphi.Entity({\n  ...\n  className: '${className}Extended'\n  ...\n})\nclass ${className}Extended extends ${className} {\n  ...\n}\n\n          `);\n        }\n        FrameworkContext.contextByClassName[className] = this;\n      });\n  }\n  private prepareControllers() {\n\n    this.context.controllers = _.sortedUniq(this.context.controllers as Function[]);\n    this.context.controllers\n      .forEach(c => {\n        const className = CLASS.getName(c);\n        if (FrameworkContext.contextByClassName[className]) {\n          throw new Error(`[Firedev][frameworkcontext]\n${SYMBOL.ERROR_MESSAGES.CLASS_NAME_MATCH}\n\n          Context already register for class \"${className}\"\nThis is class names based framework....\nYou can create subclass from this class to fix this\n\n@Firedev.Controller({\n  ...\n  className: '${className}Extended'\n  ...\n})\nclass ${className}Extended extends ${className} {\n  ...\n}\n\n          `);\n        }\n        FrameworkContext.contextByClassName[className] = this;\n      });\n  }\n\n  private initAllControllersInstances() {\n    for (const c of this.context.controllers) {\n      // @ts-ignore\n      this.getInstanceBy(c);\n    }\n  }\n\n  public async initNode() {\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n  public initBrowser() {\n    if (Helpers.isBrowser && _.isUndefined(this.ngZone) && !!window['ng']) {\n      console.warn(`Please probide ngZone instance in angular apps`)\n    }\n\n\n    this.browser = new FrameworkContextBrowserApp(this);\n    this.browser.init();\n    this.initAllControllersInstances();\n  }\n\n  private initUrl() {\n    // @ts-ignore\n    this.uri = new URL(this.host);\n  }\n\n\n\n  private checkContextIfExists() {\n    if (FrameworkContext.contexts.includes(this)) {\n      throw `[framework-context] Context already exists`;\n    }\n    if (FrameworkContext.contexts.find(c => c.host === this.host)) {\n      throw `[framework-context] Context with host ${this.host} already exists`;\n    }\n  }\n\n}\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\nfunction validateClassFunctions(controllers, entities) {\n\n  if (_.isArray(controllers) && controllers.filter(f => !_.isFunction(f)).length > 0) {\n    console.error('controllers', controllers)\n    throw `\n\nIncorect value for property \"controllers\" inside Firedev.Init(...)\n\n`\n  }\n\n  if (_.isArray(entities) && entities.filter(f => !_.isFunction(f)).length > 0) {\n    console.error('entites', entities)\n    throw `\n\nIncorect value for property \"entities\" inside Firedev.Init(...)\n\n`\n  }\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-context.ts","\n\n\nimport { SYMBOL } from '../symbols';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { Resource, Rest, RestHeaders } from 'ng2-rest/browser';\nimport { Models as Ng2RestModels } from 'ng2-rest/browser';\nimport { Helpers } from 'tnp-core/browser';\nimport { MorphiHelpers } from '../helpers';\nimport { FrameworkContext } from '../framework/framework-context';\nimport { from, Observable, Subject } from 'rxjs';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\n\nexport function initMethodBrowser(\n\n  target: Function,\n  type: Models.Rest.HttpMethod,\n  methodConfig: Models.Rest.MethodConfig,\n  expressPath: string,\n\n)\n\n {\n\n\n  let storage: any;\n  if (Helpers.isBrowser) {\n    storage = window;\n  }\n/* */\n/* */\n/* */\n/* */\n  \n\n\n  const context = FrameworkContext.findForTraget(target);\n  const uri: URL = context.uri;\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n\n\n\n\n\n  target.prototype[methodConfig.methodName] = function (...args) {\n\n\n\n\n\n    if (!storage[SYMBOL.ENDPOINT_META_CONFIG]) storage[SYMBOL.ENDPOINT_META_CONFIG] = {};\n    if (!storage[SYMBOL.ENDPOINT_META_CONFIG][uri.href]) storage[SYMBOL.ENDPOINT_META_CONFIG][uri.href] = {};\n    const endpoints = storage[SYMBOL.ENDPOINT_META_CONFIG];\n    let rest: Ng2RestModels.ResourceModel<any, any>;\n    if (!endpoints[uri.href][expressPath]) {\n      let headers = {};\n      if (methodConfig.contentType && !methodConfig.responseType) {\n        rest = Resource.create(uri.href, expressPath, SYMBOL.MAPPING_CONFIG_HEADER as any,\n          SYMBOL.CIRCURAL_OBJECTS_MAP_BODY as any,\n          RestHeaders.from({\n            'Content-Type': methodConfig.contentType,\n            'Accept': methodConfig.contentType,\n          }),\n        );\n      } else if (methodConfig.contentType && methodConfig.responseType) {\n        rest = Resource.create(uri.href, expressPath, SYMBOL.MAPPING_CONFIG_HEADER as any,\n          SYMBOL.CIRCURAL_OBJECTS_MAP_BODY as any,\n          RestHeaders.from({\n            'Content-Type': methodConfig.contentType,\n            'Accept': methodConfig.contentType,\n            'responsetypeaxios': methodConfig.responseType\n          }),\n        );\n      } else if (!methodConfig.contentType && methodConfig.responseType) {\n        rest = Resource.create(uri.href, expressPath, SYMBOL.MAPPING_CONFIG_HEADER as any,\n          SYMBOL.CIRCURAL_OBJECTS_MAP_BODY as any,\n          RestHeaders.from({\n            'responsetypeaxios': methodConfig.responseType\n          }),\n        );\n      } else {\n        rest = Resource.create(uri.href, expressPath, SYMBOL.MAPPING_CONFIG_HEADER as any,\n          SYMBOL.CIRCURAL_OBJECTS_MAP_BODY as any,\n        );\n      }\n\n      endpoints[uri.href][expressPath] = rest;\n    } else {\n      rest = endpoints[uri.href][expressPath] as any;\n    }\n\n    const method = type.toLowerCase();\n    const isWithBody = (method === 'put' || method === 'post');\n    const pathPrams = {};\n    let queryParams = {};\n    let bodyObject = {};\n    args.forEach((param, i) => {\n      let currentParam: Models.Rest.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\n      if (currentParam.paramType === 'Path') {\n        pathPrams[currentParam.paramName] = param;\n      }\n      if (currentParam.paramType === 'Query') {\n        if (currentParam.paramName) {\n          const mapping = MorphiHelpers.Mapping.decode(param, !FrameworkContext.isProductionMode);\n          if (mapping) {\n            rest.headers.set(\n              `${SYMBOL.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName}`,\n              JSON.stringify(mapping))\n          }\n          queryParams[currentParam.paramName] = param;\n        } else {\n          const mapping = MorphiHelpers.Mapping.decode(param, !FrameworkContext.isProductionMode);\n          if (mapping) {\n            rest.headers.set(\n              SYMBOL.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n              JSON.stringify(mapping))\n          }\n          queryParams = _.cloneDeep(param);\n        }\n      }\n      if (currentParam.paramType === 'Header') {\n        if (currentParam.paramName) {\n          if (currentParam.paramName === SYMBOL.MDC_KEY) { // parese MDC\n            rest.headers.set(currentParam.paramName, encodeURIComponent(JSON.stringify(param)))\n          } else {\n            rest.headers.set(currentParam.paramName, param)\n          }\n        } else {\n          for (let header in param) {\n            rest.headers.set(header, param[header])\n          }\n        }\n      }\n      if (currentParam.paramType === 'Cookie') {\n        Resource.Cookies.write(currentParam.paramName, param, currentParam.expireInSeconds);\n      }\n      if (currentParam.paramType === 'Body') {\n        if (currentParam.paramName) {\n          if (CLASS.getNameFromObject(bodyObject) === 'FormData') {\n            throw new Error(`[firedev-framework] Don use param names when posting/putting FormData.\n            Use this:\n\n            (@Firedev.Http.Param.Body() formData: FormData) ...\n\n\n            instead\n\n            (@Firedev.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n\n            `)\n          }\n          const mapping = MorphiHelpers.Mapping.decode(param, !FrameworkContext.isProductionMode);\n          if (mapping) {\n            rest.headers.set(\n              `${SYMBOL.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName}`,\n              JSON.stringify(mapping))\n          }\n          bodyObject[currentParam.paramName] = param;\n        } else {\n          const mapping = MorphiHelpers.Mapping.decode(param, !FrameworkContext.isProductionMode);\n          if (mapping) {\n            rest.headers.set(\n              SYMBOL.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n              JSON.stringify(mapping))\n          }\n          bodyObject = param;\n        }\n      }\n    });\n\n    if (typeof bodyObject === 'object' && (CLASS.getNameFromObject(bodyObject) !== 'FormData')) {\n      let circuralFromItem = []\n      bodyObject = MorphiHelpers.JSON.parse(MorphiHelpers.JSON.stringify(bodyObject, void 0, void 0, circs => {\n        // @ts-ignore\n        circuralFromItem = circs;\n      }))\n      rest.headers.set(\n        SYMBOL.CIRCURAL_OBJECTS_MAP_BODY,\n        JSON.stringify(circuralFromItem)\n      )\n    }\n\n    if (typeof queryParams === 'object') {\n      let circuralFromQueryParams = []\n      queryParams = MorphiHelpers.JSON.parse(MorphiHelpers.JSON.stringify(queryParams, void 0, void 0, circs => {\n        // @ts-ignore\n        circuralFromQueryParams = circs;\n      }))\n\n      rest.headers.set(\n        SYMBOL.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n        JSON.stringify(circuralFromQueryParams))\n    }\n\n\n    return {\n      received: isWithBody ? rest.model(pathPrams)[method](bodyObject, [queryParams]) : rest.model(pathPrams)[method]([queryParams])\n    }\n  };\n}\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n ;({}); // @--end-of-file-for-module=morphi lib/init-method/init-method-browser.ts","\n\nexport * from './init-method-browser';\n/* */\n/* */\n  \n\n ;({}); // @--end-of-file-for-module=morphi lib/init-method/index.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { MorphiHelpers } from '../helpers';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport type { FrameworkContext } from '../framework/framework-context';\n\ndeclare const global: any;\n\n\nconst abstractClasses = ['BASE_CONTROLLER'];\n\nexport function activateBaseCrud(\n  target: Function,\n  entity: Function,\n  context: FrameworkContext) {\n\n  if (_.isFunction(target) && MorphiHelpers.hasParentClassWithName(target, 'BaseCRUD') &&\n    !abstractClasses.includes(CLASS.getName(target))) {\n    if (_.isUndefined(entity)) {\n      if (CLASS.getName(target) === CLASS.getName(target['__proto__'])) {\n\n        return;\n      }\n\n/* */\n/* */\n  \n        !global.hideLog && console.warn(`\n        You are extending BaseCRUD class.. CRUD functionality won't work\n        unless you provide \"entity\" property for CRUD operations on db.\n        @Firedev.Controller({\n          ...\n          entity: <YOUR ENTITY CLASS HERE>\n          ...\n        })\n        class ${CLASS.getName(target)} extends  ...\n              `)\n/* */\n/* */\n  \n\n    } else {\n\n      target.prototype['entity'] = entity;\n    }\n  } else {\n\n  }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/activate-base-crud.ts","\n\nimport {   initMethodBrowser, } from '../init-method';/* */\n/* */\n\n/* */\n/* */\n/* */\n/* */\n  \nexport { CLASS } from 'typescript-class-helpers/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { _, Helpers } from 'tnp-core/browser';\nimport { SYMBOL } from '../symbols';\nimport { MorphiHelpers } from '../helpers';\nimport { activateBaseCrud } from '../crud/activate-base-crud';\nimport { Models } from '../models';\nimport { FrameworkContext } from '../framework/framework-context';\nexport { Connection } from 'firedev-typeorm/browser';\n\nexport function __ENDPOINT(baseEntity?: Function): (...args: any[]) => any {\n  return ENDPOINT();\n}\n\nexport function ENDPOINT(options?: {\n  path?: string,\n  entity?: Function,\n  additionalEntities?: Function[],\n  auth?\n/* */\n/* */\n  \n}) {\n  return function (target: Function) {\n\n    let { path, auth, entity } = options ? options : {} as any;\n\n    const initFN = (function (target, targetPath, auth) {\n      return function () {\n        const context = FrameworkContext.findForTraget(target);\n\n        activateBaseCrud(target, entity, context)\n\n        const configs = CLASS.getConfigs(target) as any[];\n\n        const classConfig: Models.Rest.ClassConfig = configs[0];\n        classConfig.path = targetPath;\n        const parentscalculatedPath = _\n          .slice(configs, 1)\n          .reverse()\n          .map(bc => {\n            if (MorphiHelpers.isGoodPath(bc.path)) {\n              return bc.path\n            }\n            return CLASS.getName(bc.classReference);\n          }).join('/')\n\n        if (MorphiHelpers.isGoodPath(targetPath)) {\n          classConfig.calculatedPath = targetPath;\n        } else {\n          classConfig.calculatedPath = `/${parentscalculatedPath}/${CLASS.getName(target)}`\n            .replace(/\\/\\//g, '/');\n        }\n\n\n        const checkAuthFn = (auth && typeof auth === 'function');\n\n        _.slice(configs, 1).forEach(bc => {\n          const alreadyIs = classConfig.methods;\n          const toMerge = _.cloneDeep(bc.methods)\n          for (const key in toMerge) {\n            if (toMerge.hasOwnProperty(key) && !alreadyIs[key]) {\n              const element = toMerge[key];\n              alreadyIs[key] = element;\n            }\n          }\n        })\n\n/* */\n/* */\n  \n          console.groupCollapsed(`express routes [${classConfig.className}]`);\n/* */\n/* */\n  \n\n\n        Object.keys(classConfig.methods).forEach(methodName => {\n          const methodConfig: Models.Rest.MethodConfig = classConfig.methods[methodName];\n          const type: Models.Rest.HttpMethod = methodConfig.type;\n          const expressPath = methodConfig.global\n            ? `/${methodConfig.path?.replace(/\\//, '')}`\n            : MorphiHelpers.getExpressPath(classConfig, methodConfig);\n\n\n          if (Helpers.isNode\n/* */\n/* */\n  \n          ) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n          }\n          if (Helpers.isBrowser\n/* */\n/* */\n  \n/* */\n/* */\n  \n          ) {\n            initMethodBrowser(target, type, methodConfig, expressPath)\n          }\n        });\n\n/* */\n/* */\n  \n          console.groupEnd();\n/* */\n/* */\n  \n\n\n      }\n    })(target, path, auth);\n    target.prototype[SYMBOL.CLASS_DECORATOR_CONTEXT] = { initFN, target };\n    FrameworkContext.initFunc.push({ initFN, target });\n  } as any;\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/decorators/decorators-endpoint-class.ts","\n\nimport { CoreModels, _ } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\n\nconst defaultResponseType = 'text or JSON';\n\nfunction metaReq(\n  method: Models.Rest.HttpMethod,\n  path: string,\n  target: any, propertyKey: string,\n  descriptor: PropertyDescriptor,\n  options: FiredevHttpDecoratorOptions) {\n  const { pathIsGlobal, overrideContentType, overridResponseType } = (_.isObject(options) ? options : {}) as any as FiredevHttpDecoratorOptions;\n\n\n  const config = CLASS.getConfig(target.constructor as any);\n\n\n  config.methods[propertyKey] = (\n    !config.methods[propertyKey] ? new Models.Rest.MethodConfig() : config.methods[propertyKey]\n  ) as Models.Rest.MethodConfig;\n  const methodConfig: Models.Rest.MethodConfig = config.methods[propertyKey];\n\n  methodConfig.methodName = propertyKey;\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 (element.paramType === 'Path' && _.isString(element.paramName) && element.paramName.trim().length > 0) {\n          paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`\n        }\n      }\n    }\n    methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`\n\n  } else {\n    methodConfig.path = path;\n  }\n\n  methodConfig.descriptor = descriptor;\n  methodConfig.global = pathIsGlobal;\n  methodConfig.contentType = overrideContentType;\n  methodConfig.responseType = overridResponseType;\n  checkIfMethodsWithReponseTYpeAlowed(_.values(config.methods).filter(f => f !== methodConfig), methodConfig)\n}\n\nfunction checkIfMethodsWithReponseTYpeAlowed(methods: Models.Rest.MethodConfig[], current: Models.Rest.MethodConfig) {\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[firedev] 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\nexport interface FiredevHttpDecoratorOptions {\n  path?: string;\n  pathIsGlobal?: boolean;\n  overrideContentType?: CoreModels.ContentType;\n  overridResponseType?: ModelsNg2Rest.ResponseTypeAxios,\n}\n\n\nexport function GET(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('get', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\nexport function HEAD(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('head', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\nexport function POST(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('post', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\nexport function PUT(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('put', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\nexport function PATCH(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('patch', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\nexport function DELETE(pathOrOptions?: string | FiredevHttpDecoratorOptions, pathIsGlobal = false) {\n  let obj: FiredevHttpDecoratorOptions;\n  if (typeof pathOrOptions === 'object') {\n    obj = pathOrOptions;\n    pathOrOptions = obj.path;\n    pathIsGlobal = !!obj.pathIsGlobal;\n  } else {\n    obj = { pathOrOptions, pathIsGlobal } as any;\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    metaReq('delete', pathOrOptions as string, target, propertyKey, descriptor, obj);\n  }\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/decorators/decorators-methods.ts","\n\nimport { Models } from '../models';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\nfunction metaParam(param: Models.Rest.ParamType, name: string, expire: number, defaultValue = undefined, ...args: any[]) {\n  const methodName = args[1];\n  const config = CLASS.getConfig(args[0].constructor);\n  const m = config.methods[methodName] = (!config.methods[methodName] ? new Models.Rest.MethodConfig() : config.methods[methodName]);\n\n  const nameKey = name ? name : param;\n  const p = m.parameters[nameKey] = (!m.parameters[nameKey] ? new Models.Rest.ParamConfig() : m.parameters[nameKey]);\n  p.index = args[2];\n  p.paramName = name;\n  p.paramType = param;\n  p.defaultType = defaultValue;\n  p.expireInSeconds = expire;\n}\n\nexport function Path(name: string) {\n  return function (...args: any[]) {\n    metaParam('Path', name, undefined, {}, ...args)\n  };\n}\n\nexport function Query(name?: string) {\n  return function (...args: any[]) {\n    metaParam('Query', name, undefined, {}, ...args)\n  };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n  return function (...args: any[]) {\n    metaParam('Cookie', name, expireInSecond, {}, ...args)\n  };\n}\n\nexport function Header(name?: string) {\n  return function (...args: any[]) {\n    metaParam('Header', name, undefined, {}, ...args)\n  };\n}\n\nexport function Body(name?: string) {\n  return function (...args: any[]) {\n    metaParam('Body', name, undefined, {}, ...args)\n  };\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/decorators/decorators-params.ts","\n\nimport { _, Helpers } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { SYMBOL } from '../symbols';\nimport { __ENDPOINT } from '../decorators/decorators-endpoint-class';\nimport { GET, PUT, DELETE, POST, HEAD, PATCH } from '../decorators/decorators-methods';\nimport { Query, Path, Body } from '../decorators/decorators-params';\nimport { Models } from '../models';\nimport { Level, Log } from 'ng2-logger/browser';\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\nconst log = Log.create('base crud model',\n  Level.__NOTHING\n)\n\nconst Firedev = {\n  symbols: SYMBOL,\n  Http: {\n    GET, PUT, DELETE, POST, HEAD, PATCH\n  }\n}\n\n@CLASS.NAME('BaseCRUD')\n@__ENDPOINT(BaseCRUD)\nexport abstract class BaseCRUD<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n  public entity: any;\n\n  constructor() {\n    this.init()\n  }\n\n/* */\n/* */\n/* */\n  \n\n  private init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n  @Firedev.Http.GET(`/${Firedev.symbols.CRUD_TABLE_MODEL}/:id/property/:property`)\n  bufforedChanges(\n    @Path(`id`) id: number | string,\n    @Path(`property`) property: string,\n    @Query('alreadyLength') alreadyLength?: number\n  ): Models.Response<string | any[]> {\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  @Firedev.Http.GET(`/${Firedev.symbols.CRUD_TABLE_MODELS}-pagination`)\n  pagination<T = any>(\n    @Query('pageNumber') pageNumber: number = 1,\n    @Query('pageSize') pageSize: number = 10,\n    @Query('search') search: string = '',\n  ): Models.Response<T[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\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\n\n  @Firedev.Http.GET(`/${Firedev.symbols.CRUD_TABLE_MODELS}`)\n  getAll(): Models.Response<T[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  @Firedev.Http.GET(`/${Firedev.symbols.CRUD_TABLE_MODEL}/:id`)\n  getBy(@Path(`id`) id: number | string): Models.Response<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n\n  @Firedev.Http.PUT(`/${Firedev.symbols.CRUD_TABLE_MODEL}/:id`)\n  updateById(@Path(`id`) id: number | string, @Body() item: T): Models.Response<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  @Firedev.Http.PUT(`/bulk/${Firedev.symbols.CRUD_TABLE_MODELS}`)\n  bulkUpdate(@Body() items: T[]): Models.Response<T[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  @Firedev.Http.DELETE(`/${Firedev.symbols.CRUD_TABLE_MODEL}/:id`)\n  deleteById(@Path(`id`) id: number): Models.Response<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  @Firedev.Http.DELETE(`/bulk/${Firedev.symbols.CRUD_TABLE_MODELS}/:ids`)\n  bulkDelete(@Path(`ids`) ids: (number | string)[]): Models.Response<(number | string | T)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n\n  @Firedev.Http.POST(`/${Firedev.symbols.CRUD_TABLE_MODEL}/`)\n  create(@Body() item: T): Models.Response<T> {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n  @Firedev.Http.POST(`/bulk/${Firedev.symbols.CRUD_TABLE_MODELS}/`)\n  bulkCreate(@Body() items: T): Models.Response<T[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n    return (void 0);\n  }\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/base-crud-model.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\nexport function findTypeForEntity(entity: Function, isArray: boolean = false) {\n  if (!_.isArray(RegisterComponentType.prototype.types)) {\n    RegisterComponentType.prototype.types = []\n  }\n  return getRegisteredComponents().find(c => (c.entity === entity && c.isArray === isArray));\n}\n\nexport type FormlyEntityType = { name: string, component: Function; entity?: Function, isArray?: boolean; };\n\nexport function typeFromEntity(component: Function, entity?: Function | Function[]) {\n  const isArray = _.isArray(entity);\n  if (isArray) {\n    entity = _.first(entity as any);\n  }\n  let name = CLASS.getName(component)\n  let res = { name, component, entity, isArray };\n\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 (!_.isArray(RegisterComponentType.prototype.types)) {\n    RegisterComponentType.prototype.types = []\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    RegisterComponentType.prototype.types.push(typeFromEntity(target, entity))\n  } as any;\n}\n\nexport function RegisterComponentType(className: string, ...optionslNames: string[]) {\n  if (!_.isArray(RegisterComponentType.prototype.types)) {\n    RegisterComponentType.prototype.types = []\n  }\n  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n    CLASS.NAME(className)(target)\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\n\nexport function getRegisteredComponents() {\n  let registered = RegisterComponentType.prototype.types as FormlyEntityType[];\n  if (!Array.isArray(registered)) {\n    return []\n  }\n\n  return registered;\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/type-from-entity.ts","\n\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { _ } from 'tnp-core/browser';\nimport { Mapping } from 'ng2-rest/browser';\nimport { findTypeForEntity } from './type-from-entity';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { CoreModels } from 'tnp-core/browser';\nimport { FormlyInputType } from './formly.models';\n\nexport function getFromlyConfigFor(\n  target: Function,\n  options: {\n    formType?: CoreModels.UIFramework;\n    keysPathesToInclude?: string[];\n    keysPathesToExclude?: string[];\n    parentModel?: string;\n    relativePath?: string;\n    level?: number;\n    maxLevel?: number;\n  } = {}\n) {\n  const { formType = 'material', keysPathesToExclude = [], keysPathesToInclude = [],\n    parentModel, relativePath = '', level = 0, maxLevel = 4,\n  } = options;\n\n\n  if (level === maxLevel) {\n    return [];\n  }\n\n  const mapping: Mapping.Mapping = Mapping.getModelsMapping(target);\n\n  const fieldNames = CLASS.describeProperites(target);\n  const checkExclude = (_.isArray(keysPathesToExclude) && keysPathesToExclude.length > 0);\n  const checkInclude = (_.isArray(keysPathesToInclude) && keysPathesToInclude.length > 0);\n  if (checkExclude && checkInclude) {\n    throw new Error(`In Firedev function getFromlyConfigFor(...) please use keysPathesToInclude or keysPathesToExclude, `)\n  }\n\n\n\n\n\n\n\n\n  let fields: FormlyFieldConfig[] = [];\n\n\n  function inputToPush(key: string, type: FormlyInputType, model: string,\n    inptToPushOptions?: {\n      targetChild?: Function,\n      selectOptions?: any[],\n    }) {\n    const { targetChild, selectOptions } = inptToPushOptions || {};\n\n    let res: FormlyFieldConfig;\n    if (type === 'repeat') {\n      const fieldGroup = getFromlyConfigFor(targetChild,\n        {\n          formType, keysPathesToInclude, keysPathesToExclude,\n          relativePath: `${relativePath}.${key}`,\n          level: (level + 1), 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 ${_.startCase(key)}`\n            },\n            fieldGroup\n          }\n        }\n      }\n\n    } else if (type === 'group') {\n      const fieldGroup = getFromlyConfigFor(targetChild,\n        {\n          formType, keysPathesToInclude, keysPathesToExclude, parentModel: model,\n          relativePath: `${relativePath}.${key}`,\n          level: (level + 1), maxLevel\n        })\n      if (fieldGroup.length > 0) {\n        res = {\n          fieldGroupClassName: 'row',\n          templateOptions: {\n            label: `${_.startCase(key)}`\n          },\n          wrappers: ['groupwrap'],\n          fieldGroup\n        }\n      }\n    } else {\n      res = {\n        key,\n        model,\n        type,\n        defaultValue: !_.isUndefined(target.prototype[key]) ? target.prototype[key] : undefined,\n        templateOptions: {\n          label: _.isString(model) ? `${model.split('.').map(l => _.startCase(l)).join(' / ')} / ${_.startCase(key)}`\n            : _.startCase(key),\n          options: selectOptions,\n        }\n      }\n    }\n    if (res) {\n      Object.keys(res).forEach(key => res[key] === undefined ? delete res[key] : '');\n    }\n    return res;\n  }\n\n\n\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\n        isAlowed = false;\n      } else {\n        isAlowed = true;\n      }\n    } else if (checkInclude) {\n      if (keysPathesToInclude.includes(matchPath)) {\n\n        isAlowed = true;\n      } else {\n        isAlowed = false;\n      }\n    }\n\n    return isAlowed;\n  }\n\n\n  const simpleResolved = []\n\n\n  function resolveSimpleTypes() {\n\n    for (const key in target.prototype) {\n      if (target.prototype.hasOwnProperty(key) && !_.isFunction(target.prototype[key])) {\n\n        if (!isAlowedPath(key)) {\n          continue;\n        }\n\n        if (!_.isUndefined(mapping[key])) {\n          continue;\n        }\n\n        const element = target.prototype[key];\n        let type: FormlyInputType = 'input';\n        if (_.isBoolean(element)) {\n          type = 'switch'\n        } else if (_.isDate(element)) {\n          type = 'datepicker'\n        } else if (_.isFunction(target['getOptionsFor'])) {\n          var selectOptions = target['getOptionsFor'](key);\n          if (!_.isUndefined(selectOptions)) {\n            type = 'select'\n          }\n        } else if (_.isFunction(target.prototype?.getOptionsFor)) {\n          var selectOptions = target.prototype?.getOptionsFor(key);\n          if (!_.isUndefined(selectOptions)) {\n            type = 'select'\n          }\n        }\n        fields.push(inputToPush(key, type, parentModel, { selectOptions }))\n        simpleResolved.push(key)\n      }\n    }\n  }\n\n\n\n  function resolveComplexTypes() {\n\n    fieldNames\n      .filter(key => !simpleResolved.includes(key))\n      .forEach(key => {\n\n        if (isAlowedPath(key) && !_.isUndefined(mapping[key])) {\n          let className = mapping[key]\n          const isArray = _.isArray(className)\n          className = isArray ? _.first(className) : className;\n\n          if (className === 'Date') {\n            fields.push(inputToPush(key, 'datepicker', parentModel))\n          } else {\n            const targetChild = CLASS.getBy(className);\n\n            if (targetChild) {\n\n\n              const ftype = findTypeForEntity(targetChild, isArray);\n\n              if (ftype) {\n                fields = fields.concat(inputToPush(key, ftype.name as any, key))\n              } else {\n                if (isArray) {\n                  fields = fields.concat(inputToPush(key, 'repeat', key, { targetChild }))\n                } else {\n                  fields = fields.concat(inputToPush(key, 'group', key, { targetChild }))\n                }\n              }\n\n            }\n          }\n\n        }\n      });\n  }\n\n\n  function generate() {\n    resolveSimpleTypes();\n\n    resolveComplexTypes()\n\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[]\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/fromly.ts","\n\n\nexport type FormlyInputType = 'input' | 'switch' | 'datepicker' | 'repeat' | 'group' | 'select';\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/formly.models.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\nconst DEFAULT_PAGE_SIZE = 10;\n\n@CLASS.NAME('PaginationConfig')\nexport class PaginationConfig<T = any> {\n\n  public static defaultConfig<T>() {\n    return PaginationConfig.from<T>({} as any);\n  }\n\n  public static from<T>(dataObj: Partial<PaginationConfig>): PaginationConfig<T> {\n    dataObj = _.omit(dataObj, ['content']);\n    const instance = Object.assign(new PaginationConfig(), dataObj) as PaginationConfig;\n    ([\n      'totalElements',\n      'totalPages',\n      'number',\n      'numberOfElements',\n    ] as ((keyof PaginationConfig)[])).forEach((key) => {\n      if (_.isUndefined(instance[key])) {\n        // @ts-ignore\n        instance[key] = 0;\n      }\n    });\n    ([\n      'hasNext',\n      'hasPrevious',\n      'first',\n      'last',\n      'pageable',\n    ] as ((keyof PaginationConfig)[])).forEach((key) => {\n      if (_.isUndefined(instance[key])) {\n        // @ts-ignore\n        instance[key] = false;\n      }\n    });\n    if (_.isNil(instance.sortOrders)) {\n      instance.sortOrders = [];\n    }\n    if (_.isNil(instance.size)) {\n      instance.size = DEFAULT_PAGE_SIZE;\n    }\n    return instance;\n  }\n\n  content: T[];\n  totalElements: number;\n  totalPages: number;\n  number: number;\n  numberOfElements?: number;\n  size?: number;\n  sortOrders?: any[];\n  hasNext?: boolean;\n  hasPrevious?: boolean;\n  first?: boolean;\n  last?: boolean;\n  pageable?: boolean;\n  private constructor() { }\n\n  params() {\n    const config = _.cloneDeep(this);\n    const allowed = _.pick(config, ([\n      'number',\n      'size',\n    ] as (keyof PaginationConfig)[]) as any);\n    return Object\n      .keys(allowed)\n      .reduce((a, b) => {\n        return _.merge(a, {\n          ['page-' + b]: config[b],\n        });\n      }, {});\n  }\n\n  clone(): PaginationConfig {\n    return _.merge(new PaginationConfig(), _.cloneDeep(this));\n  }\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/pagination-config.ts","\n\nexport * from './base-crud-model';\nexport * from './fromly';\nexport * from './type-from-entity';\nexport * from './formly.models';\nexport * from './pagination-config';\n/* */\n/* */\n  \n\n ;({}); // @--end-of-file-for-module=morphi lib/crud/index.ts","\n\nexport * from './decorators-endpoint-class';\nexport * from './decorators-methods';\nexport * from './decorators-params';\n\n ;({}); // @--end-of-file-for-module=morphi lib/decorators/index.ts","\n\n/* */\n/* */\n  \n/* */\n/* */\n/* */\n/* */\n  \nimport { SYMBOL } from '../symbols';\nimport { CLASS } from 'typescript-class-helpers/browser';\n\n\nimport { _ } from 'tnp-core/browser';\nimport { BASE_ENTITY } from './framework-entity';\nimport { BASE_REPOSITORY } from './framework-repository';\nimport { FrameworkContext } from './framework-context';\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\nexport function classNameVlidation(className, target: Function) {\n\n  setTimeout(() => {\n\n    if (_.isUndefined(className) && FrameworkContext.isProductionMode) {\n      throw `[Firedev]\n    Please provide \"className\" property for each Controller and Entity:\n\n        @Firedev.Controller({ className: 'MyExampleCtrl'  })\n        class MyExampleCtrl {\n          ...\n        }\n\n        @Firedev.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 _.isUndefined(className) ? target.name : className;\n}\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-helpers.ts","\n\n/* */\n/* */\n/* */\n/* */\n  \n\nimport { _ } from 'tnp-core/browser';\nimport { ENDPOINT, __ENDPOINT } from '../decorators/decorators-endpoint-class';\nimport { BaseCRUD } from '../crud/base-crud-model';\nimport { classNameVlidation } from './framework-helpers';\nimport { Models } from '../models';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { FrameworkContext } from './framework-context';\n\nconst updatedWithCtrl = {};\nconst updatedStaticWithCtrl = {};\n\nfunction getSing(target) {\n  const context = FrameworkContext.findForTraget(target);\n\n  const res = context.getInstanceBy(target);\n  if (!res) {\n    console.warn('[firedev][getSing] can not get instance by target', target);\n  }\n  return res;\n}\n\nfunction updateChain(entity: Function, target: Function) {\n  if (!_.isFunction(entity)) {\n    return\n  }\n  const className = CLASS.getName(entity);\n\n  if (updatedWithCtrl[className]) {\n    console.warn(`[Firedev] Property 'ctrl' already exist for ${className}`);\n    try {\n      Object.defineProperty(entity.prototype, 'ctrl', {\n        get: function () {\n          return getSing(target);\n        }\n      })\n    } catch (error) { }\n  } else {\n    updatedWithCtrl[className] = true;\n    Object.defineProperty(entity.prototype, 'ctrl', {\n      get: function () {\n        return getSing(target);\n      }\n    })\n  }\n  if (updatedStaticWithCtrl[className]) {\n    console.warn(`[Firedev] Static property 'ctrl' already exist for \"${className}\"`);\n    try {\n      Object.defineProperty(entity, 'ctrl', {\n        get: function () {\n          return getSing(target);\n        }\n      })\n    } catch (error) { }\n  } else {\n    updatedStaticWithCtrl[className] = true;\n    Object.defineProperty(entity, 'ctrl', {\n      get: function () {\n        return getSing(target);\n      }\n    })\n  }\n\n\n}\n\nexport function Controller(options?: {\n  className?: string;\n  /**\n   * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n   */\n\n  /**\n   * Entity required fro CRUD functions\n   */\n  entity?: Function,\n\n  /**\n   * override default path for controller api\n   */\n  path?: string,\n  autoinit?: boolean,\n/* */\n/* */\n  \n}) {\n  let { className, realtime, autoinit = false, entity, additionalEntities } = options || {} as any;\n\n  return function (target: Function) {\n/* */\n/* */\n/* */\n/* */\n  \n\n\n\n    className = classNameVlidation(className, target);\n    CLASS.NAME(className)(target);\n\n\n\n\n\n\n    //\n    if (autoinit) {\n\n      __ENDPOINT(target)(target)\n    } else {\n\n      ENDPOINT(options)(target)\n    }\n\n    if (_.isArray(additionalEntities)) {\n      additionalEntities.forEach(c => {\n        updateChain(c, target)\n      })\n    }\n    if (_.isFunction(entity)) {\n      updateChain(entity, target);\n    }\n    return target as any;\n  }\n}\n\n/* */\n/* */\n/* */\n/* */\n  \n\n@Controller({\n  className: 'BASE_CONTROLLER',\n  autoinit: true\n})\nexport abstract class BASE_CONTROLLER<EntityType> extends BaseCRUD<EntityType>\n/* */\n/* */\n  \n{\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-controller.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Log, Level } from 'ng2-logger/browser';\nimport { SYMBOL } from '../symbols';\nimport { classNameVlidation } from './framework-helpers';\nimport { Mapping, Models } from 'ng2-rest/browser';\n\n/* */\n/* */\n/* */\n/* */\n/* */\n  \nimport { CLASS } from 'typescript-class-helpers/browser';\n\nconst log = Log.create('Framework entity',\n  Level.__NOTHING\n)\n\n\nfunction getUpdateID(id, entityName, propterty, config) {\n  return `${_.kebabCase(id)}-${_.kebabCase(entityName)}-${_.kebabCase(propterty)}-${_.isObject(config) ? _.kebabCase(JSON.stringify(config)) : ''\n    }`\n}\n\nexport interface IBASE_ENTITY extends BASE_ENTITY<any> {\n\n}\n\nconst IS_RELATIME = Symbol()\nconst IS_RELATIME_PROPERTY = Symbol()\n\nfunction getRealtimeIsRealtime(entity, property: string) {\n  if (!_.isObject(entity[IS_RELATIME_PROPERTY])) {\n    entity[IS_RELATIME_PROPERTY] = {};\n  }\n  return entity[IS_RELATIME_PROPERTY][property]\n}\n\nexport function Entity<T = {}>(options?: {\n  className?: string;\n\n  defaultModelValues?: Mapping.ModelValue<T>;\n  defaultModelMapping?: Mapping.Mapping<T>;\n  /**\n   * default unique property is \"id\"\n   * for your entity it may be something else\n   */\n  uniqueKeyProp?: (keyof T);\n\n  defaultModelMappingDeep?: { [lodashPathes: string]: string | [string]; }\n\n\n\n\n\n\n/* */\n/* */\n/* */\n  \n}) {\n\n\n\n\n\n\n  let {\n    defaultModelValues,\n\n    defaultModelMapping,\n    defaultModelMappingDeep = {},\n    uniqueKeyProp = 'id',\n\n    className,\n\n\n\n\n\n\n/* */\n/* */\n/* */\n  \n  } = options;\n  return function (target: any) {\n\n\n    className = classNameVlidation(className, target);\n\n    CLASS.NAME(className, {\n      uniqueKey: uniqueKeyProp,\n\n\n    } as any)(target)\n    Mapping.DefaultModelWithMapping<T>(defaultModelValues, _.merge(defaultModelMapping, defaultModelMappingDeep))(target)\n\n\n    Mapping.DefaultModelWithMapping<T>(void 0, {})(target)\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n}\n\nexport abstract class BASE_ENTITY<T = any> {\n\n  /**\n   * reserver property for uniq identifier\n   * Note: if id is not uniq.. maybe create getter for id ?\n   */\n  abstract id?: number | string;\n  /**\n   * here will be injected Firedev controller instance for entity\n   * for easy creation of intuitive api\n   */\n  public ctrl?: any;\n  /**\n   * here will be injected Firedev controller instance for entity\n   * for easy creation of intuitive api\n   */\n  public static ctrl?: any;\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-entity.ts","\n\nimport {   Repository as TypeormRepository, EntityRepository } from 'firedev-typeorm/browser';/* */\n/* */\n\nimport { _ } from 'tnp-core/browser';\n\nexport function Repository(entity: Function) {\n  return function (target: any) {\n    EntityRepository(entity)(target)\n  }\n}\n\n\nexport abstract class BASE_REPOSITORY<Entity, GlobalAliases = {}> extends TypeormRepository<Entity> {\n  __?: { [prop in keyof GlobalAliases]: { [propertyName in keyof Entity]: string } };\n  _?: GlobalAliases;\n\n  globalAliases?: (keyof GlobalAliases)[];\n\n  pagination() {\n\n  }\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-repository.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { IConnectionOptions, StartOptions } from './framework-models';\nimport { FrameworkContext } from './framework-context';\nimport { Helpers } from 'tnp-helpers/browser';\nimport axios from 'axios';\nimport { Subject } from 'rxjs';\n\n\n\n\nexport function start(options: Omit<StartOptions,\n  'InitDataPrioritypublicAssets' |\n  'publicAssets' |\n  'allowedHosts'\n>) {\n\n\n\n\n  //   // @ts-ignore\n  //   let ngZone = window.ng.probe(windowgetAllAngularRootElements()[0]) // @ts-ignore\n\n\n\n\n\n\n\n\n  //   // @ts-ignore\n  //   let ngZone = window.ng.getComponent(windowgetAllAngularRootElements()[0]) // @ts-ignore\n\n\n\n\n\n\n\n\n  let admin\n\n\n\n  if (Helpers.isBrowser) {\n    admin = window['firedev'];\n  }\n\n\n  return new Promise<FrameworkContext>(async (resolve, reject) => {\n\n    let {\n      host,\n      controllers = [],\n      entities = [],\n      disabledRealtime,\n      allowedHosts,\n      session,\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    } = options as StartOptions;\n/* */\n/* */\n/* */\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 (session) {\n      const oneHour = 1000 * 60 * 60 * 1; // 24;\n      if (!session.maxAge) {\n        session.maxAge = oneHour;\n      }\n      if (Helpers.isBrowser) {\n        axios.defaults.withCredentials = true;\n      }\n    }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    controllers = Array.isArray(controllers) ? controllers : [];\n    entities = Array.isArray(entities) ? entities : [];\n\n\n\n    const context = new FrameworkContext({\n      host,\n      controllers,\n      entities,\n      allowedHosts,\n      disabledRealtime,\n      session,\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n    });\n\n/* */\n/* */\n  \n\n\n    context.initBrowser();\n\n\n    if (Helpers.isBrowser) {\n      setTimeout(() => {\n        // @ts-ignore\n        let angularVer = _.first(getAllAngularRootElements()[0].attributes['ng-version']?.value?.split('.'));\n\n        const verNum = Number(angularVer);\n\n        if (!isNaN(verNum) && !FrameworkContext.isNgZoneInited) {\n          Helpers.error(`\n  [Firedev] Angular ${verNum} version detected...\n  [Firedev] NgZone instance is not inited... please use:\n\n  constructor(\n    ...\n    ngzone:NgZone\n    ...\n  ) {\n    Firedev.initNgZone(ngzone);\n  }\n\n          `, true, true)\n        }\n      });\n\n    }\n\n\n    let obs: Subject<boolean>;\n    if (!window['firedev']['contextLoaded']) {\n      obs = new Subject<boolean>();\n      window['firedev']['contextLoaded'] = obs;\n    } else {\n      obs = window['firedev']['contextLoaded'];\n    }\n    obs['anyContextLoaded'] = true;\n    obs.next(true);\n\n\n    resolve(context);\n  })\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-start.ts","\n\nimport type { BASE_CONTROLLER } from './framework-controller';\nimport type { BASE_ENTITY } from './framework-entity';\nimport { CoreModels } from 'tnp-core/browser';\n\n\nexport interface IConnectionOptions {\n  database: string;\n  type?: CoreModels.DatabaseType;\n  synchronize: boolean;\n  dropSchema: boolean;\n  logging: boolean;\n}\n\n\nexport type IConnectionOptionInit = Pick<IConnectionOptions, 'database' | 'logging' | 'type'>;\nexport type ISession = {\n  /**\n     * frontend host only needed when we are using\n     * withCredentials for axios\n     * and session cookie\n     */\n  frontendHost: string;\n  secret: string,\n  saveUninitialized: boolean,\n  cookie: {\n    maxAge: number,\n    /**\n     * true only for https, false fopr the rest\n     * when is true and http => everytime new session\n     */\n    secure: boolean\n  },\n  resave: boolean,\n}\n\nexport type ISessionExposed = {\n  /**\n   * REQUIRED - backend need to know that to negotiate credentials\n   * frontend host only needed when we are using\n   * withCredentials for axios\n   * and session cookie\n   */\n  frontendHost: string;\n  /**\n   * max age of session\n   */\n  maxAge?: number;\n}\n\nexport type MiddlewareType = [Function, any[]];\n\nexport type FrameworkMode =\n  'backend/frontend' |\n  'remote-backend' |\n  'tests' |\n  'backend/frontend-worker' |\n  'websql/backend-frontend'\n  ;\n\nexport interface StartOptions {\n\n  /**\n   * start server on this host\n   */\n  host: string;\n\n  /**\n   * Put firedev controllers here\n   */\n  controllers?: BASE_CONTROLLER<any>[] | Function[];\n\n  /**\n   * Put firedev entities here\n   */\n  entities?: BASE_ENTITY<any>[] | Function[];\n  /**\n   * Disable realtime/socket for this context\n   */\n  disabledRealtime?: boolean;\n\n  /**\n   * @deprecated\n   */\n  allowedHosts?: string[];\n  /**\n   * config for express http cookie sesison\n   */\n  session?: ISessionExposed;\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/framework-models.ts","\n\nexport * from './framework-controller';\nexport * from './framework-entity';\nexport * from './framework-repository'\nexport * from './framework-start';\nexport * from './framework-models';\nexport * from './framework-helpers';\n\n ;({}); // @--end-of-file-for-module=morphi lib/framework/index.ts","\n\nimport { RealtimeBase } from './realtime';\n/* */\n/* */\n  \nimport { RealtimeBrowserRxjs } from './realtime-browser-rxjs';\n\nexport { RealtimeBase } from './realtime';\n/* */\n/* */\n  \n\nexport { RealtimeBrowserRxjs } from './realtime-browser-rxjs';\n\n\n ;({}); // @--end-of-file-for-module=morphi lib/realtime/index.ts","\n\nexport { Models } from './models';\n\nexport { RepeatTypeComponent } from './crud/formly-repeat-component';\nexport { FormlyHorizontalWrapper } from './crud/formly-group-wrapper-component';\n\nimport { Observable, Subject } from 'rxjs';\n\nexport { Log, Level } from 'ng2-logger/browser';\n\nimport { _, Utils } from 'tnp-core/browser';\nimport * as crudMorph from './crud';\nimport * as decoratorsMorphi from './decorators';\nimport * as framework from './framework';\nimport * as realtime from './realtime';\nimport * as models from './models';\nimport * as sym from './symbols';\nimport { Helpers } from 'tnp-core/browser';\nimport { FrameworkContext } from './framework/framework-context';\nexport { FrameworkContext } from './framework/framework-context';\nimport * as context from './framework/framework-context';\nimport { MorphiHelpers } from './helpers';\n\n/* */\n/* */\n  \n\n/* */\n/* */\n/* */\n/* */\n  \n\n\nlet generate\n/* */\n/* */\n  \n\n/* */\n/* */\n/* */\n  \n\n\n/* */\n/* */\n  \n\nexport class TypeormRepository<T>\n/* */\n/* */\n  \n{\n\n}\n\n\nexport namespace Morphi {\n  export const symbols = sym.SYMBOL;\n  export const IsNode = Helpers.isNode;\n  export const IsBrowser = Helpers.isBrowser;\n  export function initNgZone(ngZone: any) {\n    context.FrameworkContext.initNGZone(ngZone);\n  }\n\n  /**\n   * Function only for websql mode\n   */\n  export const anyContextLoaded = () => {\n\n    let obs: Subject<boolean>;\n    if (!window['firedev']['contextLoaded']) {\n      obs = new Subject<boolean>();\n      window['firedev']['contextLoaded'] = obs;\n    } else {\n      obs = window['firedev']['contextLoaded'];\n    }\n    setTimeout(() => {\n      obs.next(!!obs['anyContextLoaded']);\n    })\n    return obs.asObservable();\n\n  }\n\n  export const isNode = Helpers.isNode;\n  export const isBrowser = Helpers.isBrowser;\n  export import FrameworkContext = context.FrameworkContext;\n  export function destroyContext(contextOrHost: FrameworkContext | string) {\n    if (_.isString(contextOrHost)) {\n      Helpers.log(`[Firedev] Destroying context by host: ${contextOrHost}`)\n      const context = FrameworkContext.findByHost(contextOrHost);\n      if (!context) {\n        Helpers.log(`[Firedev] no context to delete by host: \"${contextOrHost}\"`);\n        return;\n      }\n      contextOrHost = context;\n    }\n    FrameworkContext.destroy(contextOrHost);\n  }\n\n  export function getHttpPathBy<T = Function>(classFn: new () => T, port: number, method: (keyof T)) {\n    return `http://localhost:${port}${MorphiHelpers.getPathFor(classFn as any)}/${method as any}`;\n  }\n\n  /**\n   * Header name for model data config\n   */\n  export const MDC_KEY = sym.SYMBOL.MDC_KEY;\n  export const Platform = IsNode ? 'node' : 'browser';\n\n\n\n  export import Response = models.Models.Response;\n\n  export function enableProductionMode() {\n    FrameworkContext.isProductionMode = true;\n  }\n\n  export import Controller = framework.Controller;\n  export import Entity = framework.Entity;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  export import init = framework.start;\n  export import InitOptions = framework.StartOptions;\n  export import IConnectionOptions = framework.IConnectionOptions;\n  export import SYMBOL = sym.SYMBOL;\n\n\n\n  export namespace Realtime {\n    export namespace Browser {\n\n      export const listenChangesTableEntity = realtime.RealtimeBrowserRxjs.listenChangesEntityTable;\n      export const listenChangesEntity = realtime.RealtimeBrowserRxjs.listenChangesEntity;\n      export const listenChangesEntityObj = realtime.RealtimeBrowserRxjs.listenChangesEntityObj\n\n\n\n\n\n\n\n\n\n\n    }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n  export namespace CRUD {\n    export import Base = crudMorph.BaseCRUD;\n/* */\n/* */\n  \n  }\n\n  export namespace Formly {\n    export import getFrom = crudMorph.getFromlyConfigFor;\n    export import RegisterComponentForEntity = crudMorph.RegisterComponentTypeForEntity;\n  }\n\n  export namespace Base {\n    export import Controller = framework.BASE_CONTROLLER;\n    export import Entity = framework.BASE_ENTITY;\n/* */\n/* */\n  \n  }\n\n  export namespace Http {\n    export import GET = decoratorsMorphi.GET;\n    export import POST = decoratorsMorphi.POST;\n    export import PUT = decoratorsMorphi.PUT;\n    export import DELETE = decoratorsMorphi.DELETE;\n    export import PATCH = decoratorsMorphi.PATCH;\n    export import HEAD = decoratorsMorphi.HEAD;\n    export namespace Param {\n      export import Query = decoratorsMorphi.Query;\n      export import Path = decoratorsMorphi.Path;\n      export import Body = decoratorsMorphi.Body;\n      export import Cookie = decoratorsMorphi.Cookie;\n      export import Header = decoratorsMorphi.Header;\n    }\n    export namespace Resopnse {\n      export import Success = models.Models.Rest.HttpResponse;\n      export import Error = models.Models.Rest.HttpResponseError;\n    }\n  }\n\n\n  export namespace Websql {\n    export function useFakeTimeout(miliseconds: number) {\n\n      window[sym.SYMBOL.WEBSQL_REST_PROGRESS_TIMEOUT] = miliseconds;\n\n    }\n  }\n\n  export namespace Auth {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n\n  /**\n   * Check typeorm\n   * https://typeorm.io\n   */\n  export namespace Orm {\n    export const Repository = TypeormRepository;\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n  \n  }\n\n\n\n}\n\n ;({}); // @--end-of-file-for-module=morphi lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ModelsNg2Rest","_","HelpersNg2Rest","log","Helpers","TypeormRepository","sym.SYMBOL","context.FrameworkContext","framework.Controller","framework.Entity","framework.start","realtime.RealtimeBrowserRxjs","crudMorph.BaseCRUD","crudMorph.getFromlyConfigFor","crudMorph.RegisterComponentTypeForEntity","framework.BASE_CONTROLLER","framework.BASE_ENTITY","decoratorsMorphi.GET","decoratorsMorphi.POST","decoratorsMorphi.PUT","decoratorsMorphi.DELETE","decoratorsMorphi.PATCH","decoratorsMorphi.HEAD","decoratorsMorphi.Query","decoratorsMorphi.Path","decoratorsMorphi.Body","decoratorsMorphi.Cookie","decoratorsMorphi.Header","models.Models"],"mappings":"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"}