// //#region imports
// import * as os from 'os'; // @backend
// import { AsyncPipe, CommonModule, JsonPipe, NgFor } from '@angular/common'; // @browser
// import {
//   NgModule,
//   inject,
//   Injectable,
//   APP_INITIALIZER,
//   ApplicationConfig,
//   provideBrowserGlobalErrorListeners,
//   isDevMode,
//   mergeApplicationConfig,
// } from '@angular/core'; // @browser
// import { Component, OnInit } from '@angular/core'; // @browser
// import { VERSION } from '@angular/core'; // @browser
// import {
//   provideClientHydration,
//   withEventReplay,
// } from '@angular/platform-browser';
// import { provideRouter, RouterOutlet, Routes } from '@angular/router';
// import { provideServiceWorker } from '@angular/service-worker';
// import { provideServerRendering, withRoutes } from '@angular/ssr';
// import { RenderMode, ServerRoute } from '@angular/ssr';
// import Aura from '@primeng/themes/aura'; // @browser
// import { MaterialCssVarsModule } from 'angular-material-css-vars'; // @browser
// // import { providePrimeNG } from 'primeng/config'; // @browser
// import { Observable, map, switchMap } from 'rxjs';
// import {
//   Taon,
//   TaonBaseContext,
//   TAON_CONTEXT,
//   EndpointContext,
//   TaonBaseAngularService,
//   TaonEntity,
//   StringColumn,
//   TaonBaseAbstractEntity,
//   TaonBaseCrudController,
//   TaonController,
//   GET,
//   TaonMigration,
//   TaonBaseMigration,
// } from 'taon/src';
// import { Utils, UtilsOs } from 'tnp-core/src';
// import { HOST_CONFIG } from './app.hosts';
// //#endregion
// console.log('hello world');
// console.log('Your backend host ' + HOST_CONFIG['MainContext'].host);
// console.log('Your frontend host ' + HOST_CONFIG['MainContext'].frontendHost);
// //#region tnp component
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
// //#endregion
// //#region  tnp api service
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
// //#endregion
// //#region  tnp routes
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
// //#endregion
// //#region  tnp app configs
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
// //#endregion
// //#region  tnp entity
// @TaonEntity({ className: 'User' })
// class User extends TaonBaseAbstractEntity {
//   //#region @websql
//   @StringColumn()
//   //#endregion
//   name?: string;
//   getHello(): string {
//     return `hello ${this.name}`;
//   }
// }
// //#endregion
// //#region  tnp controller
// @TaonController({ className: 'UserController' })
// class UserController extends TaonBaseCrudController<User> {
//   // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
//   entityClassResolveFn = () => User;
//   @GET()
//   helloWorld(): Taon.Response<string> {
//     //#region @websqlFunc
//     return async (req, res) => 'hello world';
//     //#endregion
//   }
//   @GET()
//   getOsPlatform(): Taon.Response<string> {
//     //#region @websqlFunc
//     return async (req, res) => {
//       //#region @backend
//       return os.platform(); // for normal nodejs backend return real value
//       //#endregion
//       return 'no-platform-inside-browser-and-websql-mode';
//     };
//     //#endregion
//   }
// }
// //#endregion
// //#region  tnp migration
// //#region @websql
// @TaonMigration({
//   className: 'UserMigration',
// })
// class UserMigration extends TaonBaseMigration {
//   userController = this.injectRepo(User);
//   async up(): Promise<any> {
//     const superAdmin = new User();
//     superAdmin.name = 'super-admin';
//     await this.userController.save(superAdmin);
//   }
// }
// //#endregion
// //#endregion
// //#region  tnp context
// var MainContext = Taon.createContext(() => ({
//   ...HOST_CONFIG['MainContext'],
//   contexts: { TaonBaseContext },
//   //#region @websql
//   /**
//    * This is dummy migration - you DO NOT NEED need this migrations object
//    * if you are using HOST_CONFIG['MainContext'] that contains 'migrations' object.
//    * DELETE THIS 'migrations' object if you use taon CLI that generates
//    * migrations automatically inside /src/migrations folder.
//    */
//   migrations: {
//     UserMigration,
//   },
//   //#endregion
//   controllers: {
//     UserController,
//   },
//   entities: {
//     User,
//   },
//   database: true,
//   // disabledRealtime: true,
// }));
// //#endregion
// //#region  tnp start function
// const TnpStartFunction = async (
//   startParams?: Taon.StartParams,
// ): Promise<void> => {
//   await MainContext.initialize();
//   //#region @backend
//   if (
//     startParams?.onlyMigrationRun ||
//     startParams?.onlyMigrationRevertToTimestamp
//   ) {
//     process.exit(0);
//   }
//   //#endregion
//   //#region @backend
//   console.log(`Hello in NodeJs backend! os=${os.platform()}`);
//   //#endregion
//   if (UtilsOs.isBrowser) {
//     let users = (
//       await MainContext.getClassInstance(UserController).getAll().request()
//     ).body?.json;
//     if (UtilsOs.isElectron) {
//       // TODO QUICK_FIX (ng2-rest refactor for ipc needed)
//       users = users.map(u => new User().clone(u));
//     }
//     for (const user of users || []) {
//       console.log(`user: ${user.name} - ${user.getHello()}`);
//     }
//   }
// };
// //#endregion
// export default TnpStartFunction;
//# sourceMappingURL=app.js.map